diff --git a/org.eclipse.titan.designer/docs/Eclipse_Designer_userguide/3-setting_workbench_preferences.adoc b/org.eclipse.titan.designer/docs/Eclipse_Designer_userguide/3-setting_workbench_preferences.adoc index a4e261270f8e8f15afedbce98edd27fbaa715a4b..af022d17a4e80b771d39aa1e0e64a18ffa3155a5 100644 --- a/org.eclipse.titan.designer/docs/Eclipse_Designer_userguide/3-setting_workbench_preferences.adoc +++ b/org.eclipse.titan.designer/docs/Eclipse_Designer_userguide/3-setting_workbench_preferences.adoc @@ -6,7 +6,7 @@ This section gives an overview about the various settings related to the workben In Eclipse, workbench preferences are used to set user specific general rules, which apply to every project; for example, preferred font styles, access to version handling systems and so on. -Workbench preferences are accessible selecting *Window / Preferences*. Clicking on the menu item will bring up the preferences page. The opening window contains a preference tree on the left pane to ease navigation – see Figure 8. +Workbench preferences are accessible selecting *Window / Preferences*. Clicking on the menu item will bring up the preferences page. The opening window contains a preference tree on the left pane to ease navigation – see Figure 8. image::images/2_F8.png[title="TITAN preferences sub-tree"] @@ -39,13 +39,13 @@ The option is NOT CHECKED by default. * **When on-the-fly analysis ends the compiler markers.** + -When the on-the-fly analyzer starts it can trigger the following behaviors for error markers generated by the compiler previously: *“Stay unchanged�*, *“Become outdated�*, and *“Are removed�*. + -The default setting is: *“Become outdated�* +When the on-the-fly analyzer starts it can trigger the following behaviors for error markers generated by the compiler previously: *“Stay unchangedâ€*, *“Become outdatedâ€*, and *“Are removedâ€*. + +The default setting is: *“Become outdatedâ€* * **When the compiler runs the on-the-fly markers.** + -When the compiler starts it can trigger the following behaviors for error markers generated by the on-the-fly analyzer previously: *“Are removed�*, *“Stay�*.Setting this option to *“Stay�* can enhance the speed of the on-the-fly analyzer, because if the markers need to be refreshed, so does all syntactic and semantic information needs to be refreshed too. + -The default setting is: *“Are removed�.* +When the compiler starts it can trigger the following behaviors for error markers generated by the on-the-fly analyzer previously: *“Are removedâ€*, *“Stayâ€*.Setting this option to *“Stayâ€* can enhance the speed of the on-the-fly analyzer, because if the markers need to be refreshed, so does all syntactic and semantic information needs to be refreshed too. + +The default setting is: *“Are removedâ€.* * **Maximum number of build processes to use.** + @@ -54,7 +54,7 @@ The option is set equal the number of processors/cores available in the system b * **Display debug preferences** + -By default, the Designer plug-in isn’t logging debug information to the Debug Console to help solving problems.However as errors are reported to the Error Log of Eclipse this information is rarely used. Most of the time these printouts hold no value for the users.Debugging and load balancing features can be set by this option see <<debug, here>>. +By default, the Designer plug-in isn’t logging debug information to the Debug Console to help solving problems.However as errors are reported to the Error Log of Eclipse this information is rarely used. Most of the time these printouts hold no value for the users.Debugging and load balancing features can be set by this option see <<debug, here>>. + The option is NOT CHECKED by default because most of the time these features hold no value for the users. + @@ -197,7 +197,7 @@ By default we do not include any information on any option/setting in the descri * **Pack all data of related projects:** + -Project references in Eclipse are a great way to structure one’s work into manageable pieces. However, if one of those projects is not available, building the whole set is not possible. For this reason, it is possible to save all information from all required projects into one project descriptor. Its default value is off. +Project references in Eclipse are a great way to structure one’s work into manageable pieces. However, if one of those projects is not available, building the whole set is not possible. For this reason, it is possible to save all information from all required projects into one project descriptor. Its default value is off. The second group contains the settings for automatic export. @@ -549,4 +549,3 @@ The first group deals with automatic bracket insertion. For the last three items The second group contains only one box for controlling new line insertion. A checked box has the following effect: if the user hits *Enter* between two curly brackets, the cursor will be moved to the next line and the closing bracket even further, to the second line. This way an empty line is formed with an opening bracket above and a closing bracket below it. The cursor will be placed on the empty line. By default, all boxes are checked. - diff --git a/org.eclipse.titan.designer/docs/Eclipse_Designer_userguide/4-managing_projects.adoc b/org.eclipse.titan.designer/docs/Eclipse_Designer_userguide/4-managing_projects.adoc index d1d0d95a9d28213e92e62c76bdcec4a1a2c47287..694e548b1b5018b7a76b12360fac97fba485f7c3 100644 --- a/org.eclipse.titan.designer/docs/Eclipse_Designer_userguide/4-managing_projects.adoc +++ b/org.eclipse.titan.designer/docs/Eclipse_Designer_userguide/4-managing_projects.adoc @@ -72,7 +72,7 @@ There are two ways to add files to a project. The first one, using wizards, is t [[using-wizards-to-add-files-to-the-project]] === Using Wizards to Add Files to the Project -Wizards are available to create some of the TITAN modules footnote:[The terms "modules" and "files" are used interchangeably in this section.] (TTCN-3, ASN.1 and Configuration files). This functionality is reached by selecting *File / New* (see Figure 26 above). +Wizards are available to create some of the TITAN modulesfootnote:[The terms "modules" and "files" are used interchangeably in this section.] (TTCN-3, ASN.1 and Configuration files). This functionality is reached by selecting *File / New* (see Figure 26 above). In the Project Explorer view, the wizards "TTCN-3 Module", "ASN.1 Module" and "Configuration file" can be reached by **right click**ing the content area and selecting *New / Other…* . @@ -141,13 +141,13 @@ image::images/4_F36.png[title="Manage configurations"] On this window it is possible to create new configurations, delete existing ones, or simply rename one. [NOTE] -===== +==== Even though the settings of the Default configuration can be changed it cannot be deleted or renamed, the existence of this configuration is needed to be forward compatible with older versions of our tools. [.underline]#The build configuration name cannot contain whitespace character.# [.underline]#The visible build configuration settings always refer to the active build configuration.# To change a build configuration at first it shall be selected as active configuration, then some of the settings described below shall be modified then the settings shall be saved by pushing the button "Apply" or "OK". -===== +==== [[setting-the-local-build-properties-of-a-project]] === Setting the Local Build Properties of a Project @@ -823,11 +823,11 @@ ttcn3_makefilegen -V -P /home/ethbaat/DiameterApplib/Diameter_Applib_2013_03_01 .... [NOTE] -===== +==== The compressed file will contain the files in the same structure as they have been stored in the source root directory. See more information about the command ttcn3_makefilegen in sections 6.1.2 and 6.1.3 in TITAN Programmer’s Technical Reference for TITAN TTCN-3 Test Executor <<12-references.adoc#_4, [4]>>. -===== +==== == Formatting Log Files diff --git a/org.eclipse.titan.designer/docs/Eclipse_Designer_userguide/7-editing_with_titan_designer_plugin.adoc b/org.eclipse.titan.designer/docs/Eclipse_Designer_userguide/7-editing_with_titan_designer_plugin.adoc index 8a999642f7281ff566f9e1ccb93b9871f654c69f..2760d8325609728872a7f60d5879cee11ec1f7aa 100644 --- a/org.eclipse.titan.designer/docs/Eclipse_Designer_userguide/7-editing_with_titan_designer_plugin.adoc +++ b/org.eclipse.titan.designer/docs/Eclipse_Designer_userguide/7-editing_with_titan_designer_plugin.adoc @@ -143,7 +143,7 @@ To define macros outside of files the Eclipse TITAN plug-in uses the settings gi [width="100%",cols="m,",,] |=== -|#define MACRO_NAME <expression> |Define a macro, it’s value is the value of the integer expression +|#define MACRO_NAME <expression> |Define a macro, it’s value is the value of the integer expression |#undef MACRO_NAME |Delete a macro |#ifdef MACRO_NAME |The code in this branch is active if the macro `MACRO_NAME` was defined previously |#ifndef MACRO_NAME |The code in this branch is inactive if the macro `MACRO_NAME` was defined previously @@ -164,7 +164,7 @@ NOTE: ttcnpp files are not analyzed incrementally even if incremental analysis i === Limitations -The on-the-fly parser does not support the single line comment in ASN.1 files when placed right after non-comment elements. A simple workaround for this problem is to insert a SPACE character between the last non-comment character and the "`â€â€`" sign. +The on-the-fly parser does not support the single line comment in ASN.1 files when placed right after non-comment elements. A simple workaround for this problem is to insert a SPACE character between the last non-comment character and the "`—`" sign. Limitations of preprocessing: @@ -237,7 +237,7 @@ The highest level of content assistance is available for TTCN-3 and ASN.1 files. . From the smallest scope found the scope hierarchy is traversed in a bottom-up manner to find the possible definitions. (The definitions imported are checked after the definitions of the actual module). . When a relevant definition is found the search for possible proposals continues inside its structure. For example, if the definition is a variable of a structured type, the reference is used to detect the subtypes or fields that the reference could point to if it were to be completed that way. -The proposals are ordered in the following way (definitions don’t hide each other in the proposal list): +The proposals are ordered in the following way (definitions don’t hide each other in the proposal list): . Dynamic elements available in the given scope. The elements are ordered by the distance of the element definition from the completion point in the scope hierarchy. For example, a local variable will always precede module definitions. The definitions that are most likely to be used are placed earlier in the list. If there is more than one proposal from the same scope, they are ordered alphabetically. . Skeletons available in the given scope. The skeletons are ordered alphabetically. @@ -245,7 +245,7 @@ The proposals are ordered in the following way (definitions don’t hide ea === Content Assistance Limitations -Full context sensitivity is not possible yet. Only the scopes and the type structures are used to filter the list of proposals. For this reason, the content assistant might offer completion proposals, which are possible in the actual scope but not in the actual context. It is the user’s task to choose the right proposal. +Full context sensitivity is not possible yet. Only the scopes and the type structures are used to filter the list of proposals. For this reason, the content assistant might offer completion proposals, which are possible in the actual scope but not in the actual context. It is the user’s task to choose the right proposal. Only data gathered and stored by the on-the-fly parsers can be offered. If this data is outdated or not complete, the content assistance will also offer outdated or limited information. Section 3.1 explains how this can happen. @@ -274,7 +274,7 @@ Open Declaration works for TTCN-3 and ASN.1 modules and configuration files. For Open configuration files listed in the include section. If the selected configuration file cannot be found the error is reported in the *TITAN Debug Console* and *the status line of Eclipse*. -Find module parameter declarations. If the module parameter is given as a module specific module parameter (e.g. `module.parameter`) only the given module is searched through for the declaration. Otherwise (e.g. `.parameter` or `parameter`) all modules of the project are taken into account. Duplicate module parameter declarations and errors are reported in the same way as for macro definitions. +Find module parameter declarations. If the module parameter is given as a module specific module parameter (e.g. `module.parameter`) only the given module is searched through for the declaration. Otherwise (e.g. `.parameter` or `parameter`) all modules of the project are taken into account. Duplicate module parameter declarations and errors are reported in the same way as for macro definitions. [[find-references]] == Find References @@ -297,7 +297,7 @@ type record MyRec { ... var MyRec v_myrec; ... -v_myrec.rec.rec.rec.str := “foo�; +v_myrec.rec.rec.rec.str := “fooâ€; ---- Searching for field rec will give 3 hits in the above line, because the reference `v_myrec.rec.rec.rec.str` contains the identifier of the rec field 3 times. @@ -370,9 +370,9 @@ The graphical pages are explained in detail in the sections below. === Module Parameters Section -On this page (new) values can be assigned to parameters defined in the TTCN–3 modules. +On this page (new) values can be assigned to parameters defined in the TTCN–3 modules. -A new parameter can be added by clicking the *Add…* button. The column *Module name* contains the name of the module where the parameter is used. The parameter can be used in all modules when this column is left blank or filled with an asterisk. The column *Module parameter name* is self-explanatory. The value of the parameter is determined by the string in the pane *Module parameter details* in free form as parameters may have different formats. +A new parameter can be added by clicking the *Add…* button. The column *Module name* contains the name of the module where the parameter is used. The parameter can be used in all modules when this column is left blank or filled with an asterisk. The column *Module parameter name* is self-explanatory. The value of the parameter is determined by the string in the pane *Module parameter details* in free form as parameters may have different formats. Highlighted existing parameters are removed by clicking the *Remove* button. @@ -386,7 +386,7 @@ Changes made to the parameters must be saved by the shortcut key *Ctrl+S*. The values of all parameters on this page are passed to test ports. -A new parameter can be added by clicking the *Add…* button. The column *Component name* contains the name of the component defining the test port. An asterisk (*) denotes all ports of the Test System Interface. The column *Test port name* is the name of the test port. The column *Parameter name* is self-explanatory. The value of the parameter is determined by the string in the pane *Test port parameter details* in free form as parameters may have different formats. +A new parameter can be added by clicking the *Add…* button. The column *Component name* contains the name of the component defining the test port. An asterisk (*) denotes all ports of the Test System Interface. The column *Test port name* is the name of the test port. The column *Parameter name* is self-explanatory. The value of the parameter is determined by the string in the pane *Test port parameter details* in free form as parameters may have different formats. Highlighted existing parameters are removed by clicking the *Remove* button. @@ -420,7 +420,7 @@ The *Use of unix domain socket communication* field can turn on or off the usage The aim of the *Components* table is to restrict component execution to certain (group of) hosts. These constraints are useful when distributed tests are executed in a heterogeneous environment. The participating computers may have different hardware setup, computing capacity or operating system. -A new restriction is added by clicking the *Add…* button to the right of the first table. The column *Component name* contains component to be restricted. The column *Host name* contains either a host name, a group of hosts (see <<group-section, here>>) or an IP address of a host. +A new restriction is added by clicking the *Add…* button to the right of the first table. The column *Component name* contains component to be restricted. The column *Host name* contains either a host name, a group of hosts (see <<group-section, here>>) or an IP address of a host. Highlighted components are removed by the button *Remove*. @@ -461,7 +461,7 @@ The field *End testcase* contains the path to the shell script executed after a This table points out parts of the test suite to be executed. Only test cases having no parameters can be executed from this section. -A new test case is added by clicking the *Add…* button to the right of the table. The column *Module name* contains the name of the module where the test case is defined. The column *Testcase…* lists the test cases to be executed. An asterisk (*) denotes that all test cases in the given module must be executed. +A new test case is added by clicking the *Add…* button to the right of the table. The column *Module name* contains the name of the module where the test case is defined. The column *Testcase…* lists the test cases to be executed. An asterisk (*) denotes that all test cases in the given module must be executed. Highlighted test cases are removed by the button *Remove*. @@ -479,7 +479,7 @@ Changes made to the parameters must be saved by the shortcut key *Ctrl + S*. This table lists the configuration files to be imported. This way there is no need to merge configuration files when parameter definitions needed are dispersed over several files. -A new configuration file is imported by clicking the *Add…* button to the right of the upper table. The column *File name* contains between quotation marks the name of the files to be imported. +A new configuration file is imported by clicking the *Add…* button to the right of the upper table. The column *File name* contains between quotation marks the name of the files to be imported. Highlighted files are removed by the button *Remove*. @@ -489,7 +489,7 @@ The field *Total* under the buttons shows the number of the imported files. This table contains macro definitions that can be used in other configuration file sections. -A new macro definition is added by clicking the *Add…* button to the right of the lower table. The column *Definition* contains the macro name whereas the column *Definition value* contains the macro itself between quotation marks. +A new macro definition is added by clicking the *Add…* button to the right of the lower table. The column *Definition* contains the macro name whereas the column *Definition value* contains the macro itself between quotation marks. Highlighted macros are removed by the button *Remove*. @@ -506,7 +506,7 @@ image::images/7_F101.jpg[title="Figure Logging"] In the components and plug-ins section a tree of components and plug-ins can be created and managed. -On the first level of the tree components can be added using the _Add component…_ button.Using the _Add plug-in…_ button plug-ins can be added under each component on the second level of the tree. +On the first level of the tree components can be added using the _Add component…_ button.Using the _Add plug-in…_ button plug-ins can be added under each component on the second level of the tree. Both component and plug-in names must be valid identifiers. The only exception is the "\*" component, this can be used to specify settings which are applied to all components and plug-ins.The "*" plug-in is automatically inserted; this can be used to specify settings which are applied to all plug-ins of the selected component. To specify settings for a specific component and plug-in one of the tree elements must be selected. @@ -525,15 +525,15 @@ Any component or plug-in can be deleted using the _Remove selected_ button. `Seconds` results relative timestamps in format `s.microsec.` -*SourceInfoFormat* controls the appearance of the test event location information (position in the TTCN–3 source code). The option can take one of the three possible values: `None`, `Single` and `Stack`. If set to `Single`, the location information of the TTCN–3 statement is logged that is currently being executed. When `Stack` is used, the entire TTCN–3 call stack is logged. The value `None` disables the printing of location information. +*SourceInfoFormat* controls the appearance of the test event location information (position in the TTCN–3 source code). The option can take one of the three possible values: `None`, `Single` and `Stack`. If set to `Single`, the location information of the TTCN–3 statement is logged that is currently being executed. When `Stack` is used, the entire TTCN–3 call stack is logged. The value `None` disables the printing of location information. -*AppendFile* controls whether the run-time environment shall keep the contents of existing log files when starting execution. The possible values are `Yes` or `No`. The default is No, which means that all events from the previous test execution will be overwritten. +*AppendFile* controls whether the run-time environment shall keep the contents of existing log files when starting execution. The possible values are `Yes` or `No`. The default is No, which means that all events from the previous test execution will be overwritten. *LogEventTypes* can be useful for log post-filtering scripts. The possible values are `Yes`, `No`, `Detailed` and `Subcategories`. These values are explained in the section `LogEventTypes` of <<12-references.adoc#_4, [4]>>. -*LogEntityName:* if set to `Yes`, the name of the TTCN–3 entity is indicated in the log file along with the file name and line number. +*LogEntityName:* if set to `Yes`, the name of the TTCN–3 entity is indicated in the log file along with the file name and line number. -*MatchingHints:* controls the verbosity of the logger regarding to template matching. The possible values are `Compact` and `Detailed`. The default is `Compact`, which shows the matched/unmatched fields of messages in a dot-separated notation. The Detailed version is similar to the former logging format. It’s more verbose and preserves the message structures. +*MatchingHints:* controls the verbosity of the logger regarding to template matching. The possible values are `Compact` and `Detailed`. The default is `Compact`, which shows the matched/unmatched fields of messages in a dot-separated notation. The Detailed version is similar to the former logging format. It’s more verbose and preserves the message structures. *Log file size* limits log file growth: when the file reaches the limit given in kilobytes, the log file is closed and a new one is opened with a different name. The naming scheme is explained in the section `LogFileSize` of <<12-references.adoc#_4, [4]>>. @@ -556,4 +556,3 @@ Any component or plug-in can be deleted using the _Remove selected_ button. === Limitations on the Graphical Pages The entered parameter values are not verified: any character string can be entered in any field. - diff --git a/org.eclipse.titan.help/docs/Eclipse_installationguide/Eclipse_installationguide.adoc b/org.eclipse.titan.help/docs/Eclipse_installationguide/Eclipse_installationguide.adoc index d98300739f77eaccc956af42405f796255cecee6..0b2a9bf466849f58e24278535d682210021d4256 100644 --- a/org.eclipse.titan.help/docs/Eclipse_installationguide/Eclipse_installationguide.adoc +++ b/org.eclipse.titan.help/docs/Eclipse_installationguide/Eclipse_installationguide.adoc @@ -64,7 +64,7 @@ This document uses the following typographical conventions: * ANTLR Runtime 4.3 -* TITAN TTCN–3 Toolset installed. (Only needed if Eclipse is used for project compilation and test execution. Editing does not require it.) +* TITAN TTCN–3 Toolset installed. (Only needed if Eclipse is used for project compilation and test execution. Editing does not require it.) * J2SE(TM) Runtime Environment 6.0 or later installed and set in Eclipse as the Java Runtime Environment @@ -103,7 +103,7 @@ For example, if the cygwin root is "C:64" then "Path" should contain "C:64\cygwi = Installing prerequisites [[installing-the-titan-ttcn-3-toolset]] -== Installing the TITAN TTCN–3 Toolset +== Installing the TITAN TTCN–3 Toolset For detailed information on installing the TITAN TTCN-3 Toolset, and configuring the environment variables for TITAN to work, refer to <<_1, Installation Guide for TITAN TTCN-3 Test Executor>>. @@ -234,7 +234,7 @@ If Java 1.8 is used then `MaxPermSize` is ignored, its support is removed. Use t -Xmx4g ---- -NOTE: If you cannot edit the `eclipse.ini` file, you can start eclipse with flags. For example `eclipse –vmargs -Xmx4g` modifies the maximum memory allocation for the virtual machine. +NOTE: If you cannot edit the `eclipse.ini` file, you can start eclipse with flags. For example `eclipse –vmargs -Xmx4g` modifies the maximum memory allocation for the virtual machine. = Compatibility Issues diff --git a/org.eclipse.titanium.refactoring/docs/Titanium_Refactoring_Description/Titanium_Refactoring_Description.adoc b/org.eclipse.titanium.refactoring/docs/Titanium_Refactoring_Description/Titanium_Refactoring_Description.adoc index e85940da9529e6e9bcef8c8736fd4a37d7658861..29dcd20728a78ddfb849bee59a2ce67232364b51 100644 --- a/org.eclipse.titanium.refactoring/docs/Titanium_Refactoring_Description/Titanium_Refactoring_Description.adoc +++ b/org.eclipse.titanium.refactoring/docs/Titanium_Refactoring_Description/Titanium_Refactoring_Description.adoc @@ -45,15 +45,15 @@ This description contains detailed information on using the TitaniumRefactoring The TitaniumRefactoring tool is an Eclipse plug-in, extending the TITAN Designer for the Eclipse IDE Toolset with refactoring functionality. The Designer is required to be installed and be present for the correct operation. [[the-titan-implementation-of-ttcn-3]] -== The TITAN implementation of TTCN–3 +== The TITAN implementation of TTCN–3 -The TitaniumRefactoring plug-in is extending the TITAN Designer plug-in, which is an implementation of TTCN–3 Core Language standard (<<_3, [3]>>), supporting of ASN.1 language (<<_4, [4]>>). +The TitaniumRefactoring plug-in is extending the TITAN Designer plug-in, which is an implementation of TTCN–3 Core Language standard (<<_3, [3]>>), supporting of ASN.1 language (<<_4, [4]>>). -The limitations present in the Designer plug-in also apply here: there are TTCN–3 language constructs which are not yet supported in the current version, while there are also some non-standard extensions implemented by TITAN. Information on these limitations and extensions and also some clarifications of how the standard has been implemented in TITAN, can be found in the <<_2, TITAN Programmer’s Technical Reference>>. +The limitations present in the Designer plug-in also apply here: there are TTCN–3 language constructs which are not yet supported in the current version, while there are also some non-standard extensions implemented by TITAN. Information on these limitations and extensions and also some clarifications of how the standard has been implemented in TITAN, can be found in the <<_2, TITAN Programmer’s Technical Reference>>. == Intended audience -This document is intended for users of the TITAN TTCN–3 Test Toolset (product number: CRL 113 200/1). +This document is intended for users of the TITAN TTCN–3 Test Toolset (product number: CRL 113 200/1). == Presumed knowledge @@ -232,9 +232,9 @@ The algorithm searches for whole statements in the selection, half selected stat If the selection is valid for the operation, then a wizard is presented for the user to specify the name of the new function and the names of its parameters. After this, the produced changes can be reviewed and accepted by clicking on the *Finish* button. -image::images/6_F6.png[title="Extract to function wizard – specify new function name"] +image::images/6_F6.png[title="Extract to function wizard – specify new function name"] -image::images/6_F7.png[title="Extract to function wizard – specify parameter names"] +image::images/6_F7.png[title="Extract to function wizard – specify parameter names"] == Known limitations @@ -266,7 +266,7 @@ The algorithm searches for log statements in the selection and modifies them if After selecting the appropriate options, click on the *OK* button to finish the operation. -image::images/8_F8.png[title="Add context info wizard – modify settings"] +image::images/8_F8.png[title="Add context info wizard – modify settings"] === Settings @@ -318,7 +318,7 @@ To run the refactoring operation on a specific TTCN function, move the cursor in After selecting the appropriate options, click on the *OK* button to finish the operation, or use the *Preview* action to browse the changes before accepting them. -image::images/10_F10.png[title="Minimize scope wizard – modify settings"] +image::images/10_F10.png[title="Minimize scope wizard – modify settings"] === Settings @@ -372,7 +372,7 @@ Please note that the "Lazy-fication of formal parameters" feature is working onl * [3] link:http://www.etsi.org/deliver/etsi_es/201800_201899/20187301/04.01.01_60/es_20187301v040101p.pdf[Methods for Testing and Specification (MTS);The Testing and Test Control Notation version 3.Part 1: Core Language European Telecommunications Standards Institute. ES 201 873-1 Version 4.1.1, July 2009] [[_4]] -* [4] link:http://www.etsi.org/deliver/etsi_es/201800_201899/20187307/04.01.01_60/es_20187307v040101p.pdf[Methods for Testing and Specification (MTS);The Testing and Test Control Notation version 3.Part 7: Using ASN.1 with TTCN–3 European Telecommunications Standards Institute. ES 201 873-7 Version 4.1.1, July 2009] +* [4] link:http://www.etsi.org/deliver/etsi_es/201800_201899/20187307/04.01.01_60/es_20187307v040101p.pdf[Methods for Testing and Specification (MTS);The Testing and Test Control Notation version 3.Part 7: Using ASN.1 with TTCN–3 European Telecommunications Standards Institute. ES 201 873-7 Version 4.1.1, July 2009] = Glossary @@ -380,4 +380,4 @@ ASN.1:: Abstract Syntax Notation One IDE:: Integrated Development Environment -TTCN–3:: Tree and Tabular Combined Notation version 3 (formerly)Testing and Test Control Notation (new resolution) +TTCN–3:: Tree and Tabular Combined Notation version 3 (formerly)Testing and Test Control Notation (new resolution) diff --git a/org.eclipse.titanium/docs/Titanium_Description/Titanium_Description.adoc b/org.eclipse.titanium/docs/Titanium_Description/Titanium_Description.adoc index 988604604c505bee09b00293e838c2b946f1b5b0..3c4bb92f130370b1debae301e46170de77634d38 100644 --- a/org.eclipse.titanium/docs/Titanium_Description/Titanium_Description.adoc +++ b/org.eclipse.titanium/docs/Titanium_Description/Titanium_Description.adoc @@ -1,11 +1,11 @@ --- -Author: Kristóf Szabados +Author: Kristóf Szabados Version: 1551-CRL 113 200/6, Rev. PE1 Date: 2018-06-19 --- = Titanium Description -:author: Kristóf Szabados +:author: Kristóf Szabados :revnumber: 1551-CRL 113 200/6, Rev. PE1 :revdate: 2018-06-19 :title-logo-image: images/titan_logo.png @@ -33,8 +33,6 @@ https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html. The contents of this document are subject to revision without notice due to continued progress in methodology, design and manufacturing. Ericsson shall have no liability for any error or damage of any kind resulting from the use of this document. - - = Introduction == How to read this document @@ -49,13 +47,13 @@ The Titanium tool is an Eclipse plug-in, built upon the TITAN Designer for the E Titanium extends the already existing feature of the Designer with higher level code analysis features such as: -* Detecting and reporting code smells footnote:[Code smells are described in Wikipedia as: "In computer programming, code smell is any symptom in the source code of a program that possibly indicates a deeper problem. Code smells are usually not bugs�they are not technically incorrect and don't currently prevent the program from functioning. Instead, they indicate weaknesses in design that may be slowing down development or increasing the risk of bugs or failures in the future."] in TTCN-3 and ASN.1 source codes; +* Detecting and reporting code smellsfootnote:[Code smells are described in Wikipedia as: "In computer programming, code smell is any symptom in the source code of a program that possibly indicates a deeper problem. Code smells are usually not bugs—they are not technically incorrect and don't currently prevent the program from functioning. Instead, they indicate weaknesses in design that may be slowing down development or increasing the risk of bugs or failures in the future."] in TTCN-3 and ASN.1 source codes; * Measuring and displaying code quality metrics on TTCN-3 source codes; * Extracting and displaying an architectural overview of the projects; == General workflow -The workflow of the Titanium tool is extending the Designer’s workflow with additional checks and measurement. As such the integration should be seamless. +The workflow of the Titanium tool is extending the Designer’s workflow with additional checks and measurement. As such the integration should be seamless. The differences only involve the new features provided: @@ -69,15 +67,15 @@ There are three more notes important to know when working with the tool: * When working with code smells, metrics and architectural level tools it is important to concentrate on the "larger picture". Correcting these issues on "face value" might hide away bigger problems. For example we found a case where unused variables with the same name were reported several times in a module. This turned out to indicate, that the function they were contained in were copy pasted, without review. [[the-titan-implementation-of-ttcn-3]] -== The TITAN implementation of TTCN–3 +== The TITAN implementation of TTCN–3 -The Titanium plug-in is extending the TITAN Designer plug-in, which is an implementation of TTCN–3 Core Language standard (<<_3, [3]>>), supporting of ASN.1 language (<<_4, [4]>>). +The Titanium plug-in is extending the TITAN Designer plug-in, which is an implementation of TTCN–3 Core Language standard (<<_3, [3]>>), supporting of ASN.1 language (<<_4, [4]>>). -The limitations present in the Designer plug-in also apply here: there are TTCN–3 language constructs which are not yet supported in the current version, while there are also some non-standard extensions implemented by TITAN. Information on these limitations and extensions and also some clarifications of how the standard has been implemented in TITAN, can be found in the TITAN Programmer’s Technical Reference <<_2, [2]>>. +The limitations present in the Designer plug-in also apply here: there are TTCN–3 language constructs which are not yet supported in the current version, while there are also some non-standard extensions implemented by TITAN. Information on these limitations and extensions and also some clarifications of how the standard has been implemented in TITAN, can be found in the TITAN Programmer’s Technical Reference <<_2, [2]>>. == Intended audience -This document is intended for users of the TITAN TTCN–3 Test Toolset (product number: CRL 113 200/5). In addition to this document, readers analyzing their codes with this tool are advised to read our knowledge base listing the code smells and metrics available. +This document is intended for users of the TITAN TTCN–3 Test Toolset (product number: CRL 113 200/5). In addition to this document, readers analyzing their codes with this tool are advised to read our knowledge base listing the code smells and metrics available. == Presumed knowledge @@ -86,11 +84,11 @@ This document is intended to be read by users already familiar with the TITAN De The document also assumes that the reader has some level of mathematical and quality assurance knowledge. For the most optimal usage of the architectural view an architectural mind-set and point of view is also beneficial. [NOTE] -===== +==== This document does not wish to describe elements of Eclipse or Titan, and how to use them. Every time such a feature is described, it is done with simplicity in mind, assuming a minimal level of experience with Integrated Development Environments from the user. However, it is advised to read the manuals of Eclipse and Titan Designer (mainly contained in its included help system), because it can provide better descriptions of the elements. There are only a few points in this document where Eclipse related information is separated from toolset related information. This is done so because the plug-in is so deeply integrated into Eclipse that separating the functionalities cannot be done without getting into implementation level of details (which the users are not interested in, and would be probably very confusing for them). -===== +==== == Typographical conventions @@ -118,7 +116,7 @@ The following information should be included into trouble reports: Before reporting a trouble, try to identify whether the trouble really relates to the Titanium plug-in. It might be caused by other third party plug-ins, or by Eclipse itself. -Reporting the contents of the Consoles and the Error log is important as TITAN consoles might display important debug information. The location on which the Error Log view can be opened can change with Eclipse versions, but it is usually found at *Window / Show View / Other… / PDE Runtime / Error Log* or *Window / Show View / Other… / General / Error Log*. +Reporting the contents of the Consoles and the Error log is important as TITAN consoles might display important debug information. The location on which the Error Log view can be opened can change with Eclipse versions, but it is usually found at *Window / Show View / Other… / PDE Runtime / Error Log* or *Window / Show View / Other… / General / Error Log*. = Getting started @@ -128,7 +126,7 @@ This section explains how to setup Eclipse and the TITAN Designer to access ever Titanium does not provide its own perspective, since most of its tools are meant to be extensions to whatever perspective the user is already using. -For those who have not yet used the TITAN Designer before, it is recommended to read chapter "The TITAN Editing perspective" of the TITAN Designer’s user guide on how to set up a default perspective for working with TTCN-3. +For those who have not yet used the TITAN Designer before, it is recommended to read chapter "The TITAN Editing perspective" of the TITAN Designer’s user guide on how to set up a default perspective for working with TTCN-3. == Setting workbench preferences @@ -136,7 +134,7 @@ This section gives an overview about the various settings related to the workben In Eclipse, workbench preferences are used to set user specific general rules, which apply to every project; for example, preferred font styles, access to version handling systems and so on. -Workbench preferences are accessible selecting *Window / Preferences*. Clicking on the menu item will bring up the preferences page. The opening window contains a preference tree on the left pane to ease navigation – see Figure 1. +Workbench preferences are accessible selecting *Window / Preferences*. Clicking on the menu item will bring up the preferences page. The opening window contains a preference tree on the left pane to ease navigation – see Figure 1. image::images/2_F1.png[title="Titan preferences sub-tree"] @@ -160,9 +158,9 @@ This section introduces the preference pages where one can control the behaviour image::images/3_F1.png[title="Code smell preferences"] -Code smells are indicators of suspicious code that is not erroneous (i.e. the code compiles), but most of the times they are not preferable. In this preference page, one can control the way of reporting the available code smells. +Code smells are indicators of suspicious code that is not erroneous (i.e. the code compiles), but most of the times they are not preferable. In this preference page, one can control the way of reporting the available code smells. -The first item on this page is the option to enable on-the-fly processing. When this option is enabled the code smells will be checked immediately after whenever the Designer’s on-the-fly analyser executes. When this option is disabled the code smells have to be explicitly requested by the *Check code for code smells* action on the menu bar. +The first item on this page is the option to enable on-the-fly processing. When this option is enabled the code smells will be checked immediately after whenever the Designer’s on-the-fly analyser executes.When this option is disabled the code smells have to be explicitly requested by the *Check code for code smells* action on the menu bar. The reporting level of all code smells is configurable to be *Ignore*, *Warning* or *Error*. Code smells set to be reported as *Ignore* will not be analysed and reported. Code smells configured to be reported as *Warning* or *Error* will be reported with that severity level. @@ -178,7 +176,7 @@ The code smells here might indicate some kind of architectural issue in the code + NOTE: The algorithm will not report all circles, in a few cases where a small circle is embedded in a larger one, both of them cannot be detected at the same time. -* *Report modules with different language specifications*: Report the case where the TTCN-3 modules of a project don’t all have the same language specification. This situation invites confusion, misunderstandings and also indicates the need to updated some of the dated modules. +* *Report modules with different language specifications*: Report the case where the TTCN-3 modules of a project don’t all have the same language specification. This situation invites confusion, misunderstandings and also indicates the need to updated some of the dated modules. + NOTE: TITAN does not support these language restrictions. + @@ -189,7 +187,7 @@ NOTE: TITAN does not support these language restrictions. * *Report friend declarations with missing modules:* The module referred as a friend module is missing. -* *Report TTCN-3 definitions that could be private, but are not set so*: Detect and report definitions that are only used inside their own module, but are not declared private. This situation allows for external modules to refer to these definitions, making them part of the module’s public interface (which it might not have been intended to be a part of). +* *Report TTCN-3 definitions that could be private, but are not set so*: Detect and report definitions that are only used inside their own module, but are not declared private. This situation allows for external modules to refer to these definitions, making them part of the module’s public interface (which it might not have been intended to be a part of). * *Report visibility settings mentioned in the name of definitions*: Detects the cases when visibility names are mentioned in the name of the definition. If this meant to serve as a protection mechanism against misuse it would be better to use the actual visibility attribute. In that case the compiler would be able to automatically check the correctness of its usage. @@ -226,7 +224,7 @@ Code smells in this category indicate issues related to bad or misunderstood arc * *Report switching on Boolean value:* select statement on boolean argument. * *Report setverdict without reason:* The setverdict statement is used without telling the reason in a parameter. * *Report uncommented functions:* procedures without documented headers. -* *Report stop statement in functions:* Functions whose body contains stop statement, which will stop the test’s execution without releasing resources and driving the SUT in correct state. +* *Report stop statement in functions:* Functions whose body contains stop statement, which will stop the test’s execution without releasing resources and driving the SUT in correct state. * *Report unused function return values:* function return value is not used, or function is started on component without being able to retrieve any return value. * *Report receive statements accepting any value*: the alt branch has a receive statement that accepts any value, but uses value redirection. * *Report insufficient altstep coverage:* When an altstep or alt statement might receive a message type without having a corresponding alt branch that could accept. @@ -328,7 +326,7 @@ These metrics collect information about each function. * *Lines of code:* counts the lines of source code of the function. Default: *No risk* under 100, *Low risk* between 100 and 150, *High risk* above 150 lines. * *Cyclomatic complexity:* Cyclomatic (or McCabe) complexity of the function. Basically, it is the number of control structures (loops, if branches, etc.) in the code. Default: *No risk* under 10, *Low risk* between 10 and 20, *High risk* above 20. * *Nesting:* counts the maximal number of nested blocks in the code. Default: *No risk* under 4, *Low risk* between 4 and 6, *High risk* above 6 nested blocks. -* *Return points:* counts the number of exit points in the functions (i.e. the return statements, and the end of functions). Default: *Never warn*. +* *Return points:* counts the number of exit points in the functions (i.e. the return statements, and the end of functions). Default: *Never warn*. * *Default activations:* counts the maximal number of default altstep branches that can be activated during the function call. Default: *Never warn*. * *External feature envy:* counts the number of references in the function body to entities inside the module where the function resides. Default: *Never warn*. * *Internal feature envy:* counts the number of references in the function body to entities outside the module where the function resides. Default: *Never warn*. @@ -380,7 +378,7 @@ At the *Titanium Preferences/Graph* page (see Figure 9) it is possible to set so + NOTE: This setting applies only to certain algorithms that have such a settable value. At the moment this means Fruchterman-Reingold and Kamada-Kawai algorithms. -* *Directed layout’s distance:* The *General Directed Graph* and *Reverse Directed Graph* algorithms do not only order the nodes by a hierarchical level, but they also try to find an optimal vertical order for the nodes on a given level. But this ordering depends on how we define the distance of two nodes (this is usually related to the incident edges). To use a certain notion of distance you can choose here. The first option is *Sum of distances* this means that we measure the Euclidean distance for all the related edges, and try to minimize the sum of these distances. The second choice is *Maximal distance.* This means that we measure the Euclidean distance for all related edges again, but the actual distance will be defined as the maximum of these values. The ordering algorithms try to minimalize this distance value. So changing this parameter may change the vertical ordering. In different cases different distance notion can be useful. If you do not know which one to use you could try both, and decide later which one looks better to you. +* *Directed layout’s distance:* The *General Directed Graph* and *Reverse Directed Graph* algorithms do not only order the nodes by a hierarchical level, but they also try to find an optimal vertical order for the nodes on a given level. But this ordering depends on how we define the distance of two nodes (this is usually related to the incident edges). To use a certain notion of distance you can choose here. The first option is *Sum of distances* this means that we measure the Euclidean distance for all the related edges, and try to minimize the sum of these distances. The second choice is *Maximal distance.* This means that we measure the Euclidean distance for all related edges again, but the actual distance will be defined as the maximum of these values. The ordering algorithms try to minimalize this distance value. So changing this parameter may change the vertical ordering. In different cases different distance notion can be useful. If you do not know which one to use you could try both, and decide later which one looks better to you. + NOTE: The better algorithm may also depend on the actual structure of the drawn graph. @@ -476,7 +474,7 @@ NOTE: As in this mode there is no interaction between eclipse and the user, all There are two settings that are always important to be set correctly; otherwise the headless mode will not be able to operate correctly: . The license file has to be set in the Designer and it has to be active, otherwise the on-the-fly analyser will not be able to execute. -. The "__Display debug information__" setting in the Designer has to be turned off. If that option is turned on, the Designer will try to write debug information to the Titan Debug Console … which does not exist in headless mode and the execution aborts. +. The "__Display debug information__" setting in the Designer has to be turned off. If that option is turned on, the Designer will try to write debug information to the Titan Debug Console … which does not exist in headless mode and the execution aborts. . The on-the-fly analysis of code smells must be enabled on the Code smells preference page (3.1), otherwise only the Designer will check the code. == The general structure of invocation @@ -521,7 +519,7 @@ This entry point does not take any parameters. [[importing-projects-from-prj]] == Importing projects from .prj -The "__org.eclipse.titanium.applications.ImportProjectsFromPrj__" entry point can be used to import projects described in the _mctr_gui_’s .prj project descriptor into the provided workspace. +The "__org.eclipse.titanium.applications.ImportProjectsFromPrj__" entry point can be used to import projects described in the _mctr_gui_’s .prj project descriptor into the provided workspace. The entry point can be invoked as: @@ -554,7 +552,7 @@ To support un-attended nightly tests, this entry point analyses a project found This entry point takes 1 or 2 parameters: . The first parameter is mandatory and is the prefix of the output path. -. The second parameter is optional and is date to be used in the generated file’s name (the current date if not provided). +. The second parameter is optional and is date to be used in the generated file’s name (the current date if not provided). This prefix will be appended with the name of the project, the provided or current date and the ".xls" extension. @@ -572,7 +570,7 @@ This entry point takes 2 or 3 parameters: 1. The first parameter is mandatory and is the prefix of the output path. 2. The second parameters is mandatory and is the name of the project to process. -The third parameter is optional and is date to be used in the generated file’s name (the current date if not provided). +The third parameter is optional and is date to be used in the generated file’s name (the current date if not provided). This prefix will be appended with the name of the project, the provided or current date and the ".xls" extension. @@ -607,16 +605,16 @@ There are two ways of exporting the module dependency graph. The two ways only d The "__org.eclipse.titanium.applications.SaveModuleNet__" entry point can be used to invoke the on-the-fly analyser on all projects in the workspace and extract their module dependency graphs into the Pajek ".net" format. -And the “_org.eclipse.titanium.applications.SaveModuleDot�_ entry point can be used to export to a .dot file. +And the “_org.eclipse.titanium.applications.SaveModuleDotâ€_ entry point can be used to export to a .dot file. The entry points can be invoked as: [source,subs="+quotes"] *eclipse.exe -noSplash -data c:\Users\ekrisza\runtime_headless -application org.eclipse.titanium.applications.SaveGraph c:\ekrisza\temporal\TitanSim\NightlyGraphs_* -These entry points take one obligatory parameter: the prefix of the output path. This prefix will be appended with the name of the project and the ".net"/�.dot� ending, creating a separate output file for every project. This parameter must be the first parameter of the application +These entry points take one obligatory parameter: the prefix of the output path.This prefix will be appended with the name of the project and the ".net"/â€.dot†ending, creating a separate output file for every project. This parameter must be the first parameter of the application -The second optional parameter is the clustering parameter. A clusterer algorithm maybe set to export cluster graph and not the original module graph. This parameter can be provided by a "_–c<algorithm_name>_" parameter, for example: +The second optional parameter is the clustering parameter. A clusterer algorithm maybe set to export cluster graph and not the original module graph. This parameter can be provided by a "_–c<algorithm_name>_" parameter, for example: [source,subs="+quotes"] *eclipse.exe -noSplash -data c:\Users\ekrisza\runtime_headless -application org.eclipse.titanium.applications.SaveGraph c:\ekrisza\temporal\TitanSim\NightlyGraphs_ -cmodulelocation* @@ -635,7 +633,7 @@ Similarly to the module graph the component graph also can be exported into two The "__org.eclipse.titanium.applications.SaveComponentNet__" entry point can be used to invoke the on-the-fly analyser on all projects in the workspace and extract their component dependency graphs into the Pajek ".net" format -The “_org.eclipse.titanium.applications.SaveComponenDot�_ entry point should be called to export the component graph in ".dot" format +The “_org.eclipse.titanium.applications.SaveComponenDotâ€_ entry point should be called to export the component graph in ".dot" format The entry points can be invoked as: @@ -672,7 +670,7 @@ image::images/5_F16.png[title="Editor actions context menu"] While editing a TTCN3 source file, you can open the context menu by right clicking in the editor. Under the Titanium menu point, you will find the available actions on this file. -* *Organize imports:* Intelligently adds and removes module importation statements, according the currently referenced definitions in the file. For details cf. Section 6. +* *Organize imports:* Intelligently adds and removes module importation statements, according the currently referenced definitions in the file. For details cf. Section 6. [[project-actions]] == Project actions @@ -704,13 +702,13 @@ As seen on Figure 19 the *_Show_* menu displays which already configured setting image::images/6_F19.png[title="Problems view active filters"] -By selecting the *Configure Contents…* menu entry, the configuration window appears. In this window it is possible to create/remove/change configuration to best fit any user need.For a more detailed description please refer to the help system of eclipse, using the *Workbench User Guide / Concepts / Views / Problems view* path. +By selecting the *Configure Contents…* menu entry, the configuration window appears. In this window it is possible to create/remove/change configuration to best fit any user need.For a more detailed description please refer to the help system of eclipse, using the *Workbench User Guide / Concepts / Views / Problems view* path. == Importing a configuration predefined for Titanium To help in getting started with Titanium, we have created a beginning set of configurations. These settings can be imported from a single file, and fine-tuned to best fit any use case. -The file containing the setting can be downloaded from https://sharepoint.ericsson.com/sites/DUCI_SW_Technology/Titanium/Documents/problems_view_preferences.epf[here].To import it, inside eclipse select *File / Import …* . In the window that pops up select *General / Preferences* (as shown on Figure 20). Till this point this is just like importing a new project, but instead now eclipse is asked to import some of its setting saved previously. +The file containing the setting can be downloaded from https://sharepoint.ericsson.com/sites/DUCI_SW_Technology/Titanium/Documents/problems_view_preferences.epf[here].To import it, inside eclipse select *File / Import …* . In the window that pops up select *General / Preferences* (as shown on Figure 20). Till this point this is just like importing a new project, but instead now eclipse is asked to import some of its setting saved previously. image::images/6_F20.png[title="The preference importation wizard selected"] @@ -766,7 +764,7 @@ On Figure 24 the selected row shows information about the *Number of functions* * modules of the project contain 12.26 functions on average * with 41.09 standard deviation -As the node is opened, under this node we can examine the modules of the project, ordered by the number of functions they contain, and see that module _AtsIpv6**Core**…_ contains 314 functions, module _AtsIpv6**NeighborDiscovery**…_ contains 113 functions, etc. +As the node is opened, under this node we can examine the modules of the project, ordered by the number of functions they contain, and see that module _AtsIpv6**Core**…_ contains 314 functions, module _AtsIpv6**NeighborDiscovery**…_ contains 113 functions, etc. == Risk highlighting @@ -840,7 +838,7 @@ module B { Module A imports B and C. The module dependency graph should show 3 nodes (one for each module), a directed edge pointing from A to B, and one also from A to C. Module B import C, so the dependency graph should also have and edge pointing from B to C. -In real life projects this might be a much more complicated structure, which is most of the time impossible to hold in anybody’s memory. Not to mention the complication when there is more than one man working on a project and not everyone follows the predefined architectural rules perfectly. In such cases it becomes impossible for anyone to know the structure of the project with such a tool. +In real life projects this might be a much more complicated structure, which is most of the time impossible to hold in anybody’s memory. Not to mention the complication when there is more than one man working on a project and not everyone follows the predefined architectural rules perfectly. In such cases it becomes impossible for anyone to know the structure of the project with such a tool. The aim of this feature is to visualize for system architects the actual architecture of their project. So that they can become familiar with it, can experiment on it, and catch possible architectural errors that appeared in the system. @@ -858,7 +856,7 @@ Depending on the size of the project and whether it was already analysed by the After the successful draw of module graph you should see something similar shown on Figure 29. + -NOTE: This image has two main parts, on the right hand side you can see the so called satellite view (this is an Eclipse view that automatically opens upon every graph drawing). And on the left hand side you can see an editor (let’s call it graph area). +NOTE: This image has two main parts, on the right hand side you can see the so called satellite view (this is an Eclipse view that automatically opens upon every graph drawing). And on the left hand side you can see an editor (let’s call it graph area). Clicking on a specific place in the satellite view, the graph area will jump to show that place, and the area will have a white background on the satellite view. @@ -893,17 +891,17 @@ The metric popup window can be opened by right clicking on a selected node image::images/10_F31.png[title="The info window and a selected node"] -The edges belonging to *c* are drawn red, and all the other edges are drawn very soft, grey. This feature visualizes the neighbours of a given node. In the metrics window the *Number of functions* metric is selected in the metrics menu (see Figure 31). The colour of the row in this view is the same as the selected node’s colour, which represents how bad it was according to the selected metric +The edges belonging to *c* are drawn red, and all the other edges are drawn very soft, grey. This feature visualizes the neighbours of a given node.In the metrics window the *Number of functions* metric is selected in the metrics menu (see Figure 31). The colour of the row in this view is the same as the selected node’s colour, which represents how bad it was according to the selected metric === Menu functions -This section lists the functionalities that are reachable from the graph window’s menu. There are six main menus: *File, Layout, Find, Tools, Metrics and Clustering* +This section lists the functionalities that are reachable from the graph window’s menu. There are six main menus: *File, Layout, Find, Tools, Metrics and Clustering* ==== File menu There are two entries in the file menu: -* Save: This will save the graph into a specific format called Pajek .net. For further information please check http://netwiki.amath.unc.edu/DataFormats/PajekNetAndPajFormats[Pajek’s documentation]. This format stores only the node names, and the connections, but nothing else (no static place, node shape, colour, etc.). _This function also can be reached by Ctrl+S hotkey combination while the graph editor is active._ +* Save: This will save the graph into a specific format called Pajek .net. For further information please check http://netwiki.amath.unc.edu/DataFormats/PajekNetAndPajFormats[Pajek’s documentation]. This format stores only the node names, and the connections, but nothing else (no static place, node shape, colour, etc.). _This function also can be reached by Ctrl+S hotkey combination while the graph editor is active._ * Export to image file: Clicking on this item first pops up a window where you can select from three options (see Figure 32): ** *Whole graph:* Export all the nodes into a big image file. On big graphs this action may fail, because the image file can be too big ** *Only the seen part:* You export the graph editor window to an image file (only the nodes what you see there). @@ -924,12 +922,12 @@ The currently available layouts: Further details: Meyer, B; `Self-Organizing Graphs - A Neural Network Perspective of Graph Layout', Graph Drawing'98. http://www.csse.monash.edu.au/%7Eberndm/ISOM/[this link] * *Fruchterman-Reingold algorithm:* This algorithm is based on a method of modern physics. It collects the most frequently visited modules to the centre of a circle like shape. The less visited modules will be on the edge of this circle. + -The exact algorithm can be seen here: THOMAS M. J. FRUCHTERMAN* AND EDWARD M. REINGOLD: "Graph Drawing by Force-directed Placement"SOFTWARE�PRACTICE AND EXPERIENCE, VOL. 21(1 1), 1129-1164 (NOVEMBER 1991) +The exact algorithm can be seen here: THOMAS M. J. FRUCHTERMAN* AND EDWARD M. REINGOLD: "Graph Drawing by Force-directed Placement"SOFTWARE—PRACTICE AND EXPERIENCE, VOL. 21(1 1), 1129-1164 (NOVEMBER 1991) * *Kamada-Kawai algorithm:* This algorithm is similar to the self-organizing layout, but it is based on the reduction of number of edge crossings. Thus it may provide better view. + For further details see: ** "Tomihisa Kamada and Satoru Kawai: An algorithm for drawing general indirect graphs. Information Processing Letters 31(1):7-15, 1989" -** "Tomihisa Kamada: On visualization of abstract objects and relations. Ph.D. dissertation, Dept. of Information Science, Univ. of Tokyo, Dec. 1988." +** "Tomihisa Kamada: On visualization of abstract objects and relations. Ph.D. dissertation, Dept. of Information Science, Univ. of Tokyo, Dec. 1988." * *Spring force directed:* This algorithm is based on the force of springs. The edges should be imagined as strong springs that would like to get the nodes closer. But nodes have a toss power, so they won't necessarily get very close. (This toss power is bigger if more nodes are close) This layout is not really good for small graphs, as nodes may cover each other, but it can be useful for big graphs. * *Logical ring:* This layout will organize nodes to a logical ring (circle). The edges will point to different other points of the circle (other nodes). It is not really useful for big graphs, but sometimes it may be good for small graphs. * *Directed layouts:* These layouts try to show you some kind of structure inside the graph. They usually show you how distinct logical levels separated on the graph. @@ -939,11 +937,11 @@ For further details see: ==== Find menu -This menu currently only has one entry, *node by name.* Clicking on this entry should pop up a small find window, where you may enter a text (see Figure 33). This text will be normally considered only as the beginning part of the node name, and the finder won’t mind whether it is upper or lower case. You can modify this behaviour by selecting *exact match* or *case sensitive* check boxes. If *exact match* is selected then only such nodes will be found that have exactly the written name (this still doesn’t mind about upper/lower case). These options maybe selected also together, in this case lower/upper case will also be handled separately. +This menu currently only has one entry, *node by name.* Clicking on this entry should pop up a small find window, where you may enter a text (see Figure 33). This text will be normally considered only as the beginning part of the node name, and the finder won’t mind whether it is upper or lower case. You can modify this behaviour by selecting *exact match* or *case sensitive* check boxes. If *exact match* is selected then only such nodes will be found that have exactly the written name (this still doesn’t mind about upper/lower case). These options maybe selected also together, in this case lower/upper case will also be handled separately. image::images/10_F33.png[title="The find window"] -On the dialog you can see two buttons, *Find* button will show you a table with the results (see Figure 34), or a message if there is no result. By clicking on an item of the list the graph window will jump there, and colour the selected node to be light blue, while all other nodes will be coloured grey. To totally understand this you can see a mixed figure on Figure 34, you can see the satellite view, the find window and the shown part of graph window together. You can see on the satellite view that your graph has two more nodes that are out of your screen. But as you clicked on A_Ext node the shown part was placed there (in this case the graph window’s center is slide to the node). On the Find window’s result set you can see that there is one more node that matched your search, this is called A_Base. Would you click there the graph window would jump there, and would colour A_Ext grey, and A_Base blue. +On the dialog you can see two buttons, *Find* button will show you a table with the results (see Figure 34), or a message if there is no result. By clicking on an item of the list the graph window will jump there, and colour the selected node to be light blue, while all other nodes will be coloured grey. To totally understand this you can see a mixed figure on Figure 34, you can see the satellite view, the find window and the shown part of graph window together. You can see on the satellite view that your graph has two more nodes that are out of your screen. But as you clicked on A_Ext node the shown part was placed there (in this case the graph window’s center is slide to the node). On the Find window’s result set you can see that there is one more node that matched your search, this is called A_Base. Would you click there the graph window would jump there, and would colour A_Ext grey, and A_Base blue. By clicking *Clear result* you may change back to the original node colours, and make the result list to be empty (in this case Find window returns to its original size, and hides the part shown below the horizontal separator line). @@ -997,7 +995,7 @@ image::images/10_F36.png[title="A clustering of module graph made by a grouping image::images/10_F37.png[title="A clustering of module graph made by a graph generating clusterer"] -. Clustering graph’s behavior +. Clustering graph’s behavior + As we have already seen in case of using a graph generating clusterer a totally new graph (cluster graph) will be shown. But it results some special behavior in graph menus. First of all, as it does not make sense to speak about the metrics of a cluster (graph node), the info window and the metrics menu will be deactivated. On the second hand all the cluster making menu entries will be deactivated, as currently clustering a cluster graph is not supported. + @@ -1014,7 +1012,7 @@ In the clustering menu the following clustering methods can be chosen: * *By module location:* Modules contained in eclipse folders will be grouped by their relative path, while modules contained in linked resources will be grouped by their full path. * *Using regular expressions:* The modules will be grouped by matching the module name to the regular expressions given on the _Graph/Clusters/Using regular expressions_ preference page. See <<clustering-using-regular-expressions-preferences, here>>. * *Automatically:* First the other methods will be used to create an initial clustering. Then they will be improved and the best one displayed. The clustering achieved tries to better reflect the structure of the project. For details on how the algorithm works, see <<_6, [6]>>. -* *By module names:* This algorithm results in a hierarchical grouping. The module names will get to separate clusters according their main part (for example prefix name), then get to more accurate subgroups according their secondary name, and so on. In case of using this algorithm in grouping mode you only get separate groups according to the prefixes of the modules. If you use this algorithm with cluster graph you will see the whole hierarchy from the level of the main module names down to the actual module names. The subgroup separator here is determined according to the most usual symbols (“_� sign, Upper case, etc.). +* *By module names:* This algorithm results in a hierarchical grouping. The module names will get to separate clusters according their main part (for example prefix name), then get to more accurate subgroups according their secondary name, and so on. In case of using this algorithm in grouping mode you only get separate groups according to the prefixes of the modules. If you use this algorithm with cluster graph you will see the whole hierarchy from the level of the main module names down to the actual module names. The subgroup separator here is determined according to the most usual symbols (“_†sign, Upper case, etc.). NOTE: In case of using this algorithm with cluster graph you will automatically change to General Directed Graph layout. This selection naturally can be change through the *Layout* menu. After changing back to the original graph you will again get an ISOM layout. @@ -1037,11 +1035,11 @@ Scrolling and +/- zooming works the same way as on module graph. Also satellite Component graph works similarly as the module graph. On the component graph there are no colours, all the nodes are coloured light green, and the selected node is coloured light blue. A node may be selected by the same way as on the module graph, also a group of nodes. -There are no metrics defined on components, so in this case there won’t be a metrics menu (see Figure 40) and also metrics info pop-up window is not active on this graph. Selecting a node by right click only causes the edges and the node to be selected. +There are no metrics defined on components, so in this case there won’t be a metrics menu (see Figure 40) and also metrics info pop-up window is not active on this graph. Selecting a node by right click only causes the edges and the node to be selected. === Menu actions -image::images/11_F39.png[title="The component graph’s menu bar, and the layout menu"] +image::images/11_F39.png[title="The component graph’s menu bar, and the layout menu"] ==== File menu @@ -1109,13 +1107,13 @@ By default the SoarQube web interface can be accessed on the http://localhost:90 * [3] link:https://www.etsi.org/deliver/etsi_es/201800_201899/20187301/04.01.01_60/es_20187301v040101p.pdf[Methods for Testing and Specification (MTS); The Testing and Test Control Notation version 3. Part 1: Core Language European Telecommunications Standards Institute ES 201 873-1 Version 4.1.1, July 2009] [[_4]] -* [4] link:https://www.etsi.org/deliver/etsi_es/201800_201899/20187307/04.01.01_60/es_20187307v040101p.pdf[Methods for Testing and Specification (MTS); The Testing and Test Control Notation version 3. Part 7: Using ASN.1 with TTCN–3 European Telecommunications Standards Institute. ES 201 873-7 Version 4.1.1, July 2009] +* [4] link:https://www.etsi.org/deliver/etsi_es/201800_201899/20187307/04.01.01_60/es_20187307v040101p.pdf[Methods for Testing and Specification (MTS); The Testing and Test Control Notation version 3. Part 7: Using ASN.1 with TTCN–3 European Telecommunications Standards Institute. ES 201 873-7 Version 4.1.1, July 2009] [[_5]] -* [5] Test software quality issues and connections to international standards Attila Kovács, Kristóf Szabados Acta Univ. Sapientiae, Informatica, 5, 1 (2013) +* [5] Test software quality issues and connections to international standards Attila Kovács, Kristóf Szabados Acta Univ. Sapientiae, Informatica, 5, 1 (2013) [[_6]] -* [6] link:https://www.cs.drexel.edu/~bmitchel/research/iwpc98.pdf[Mancoridis, S., Mitchell, B. S., Rorres, C., Chen, Y., & Gansner, E. R. (1998, June). Using automatic clustering to produce high-level system organizations of source code. In Program Comprehension, 1998. IWPC'98. Proceedings., 6th International Workshop on (pp. 45-52). IEEE] +* [6] link:https://www.cs.drexel.edu/~bmitchel/research/iwpc98.pdf[Mancoridis, S., Mitchell, B. S., Rorres, C., Chen, Y., & Gansner, E. R. (1998, June). Using automatic clustering to produce high-level system organizations of source code. In Program Comprehension, 1998. IWPC'98. Proceedings., 6th International Workshop on (pp. 45-52). IEEE] = Glossary @@ -1141,7 +1139,7 @@ SUT:: System Under Test TCP:: Transmission Control Protocol -TTCN–3:: Tree and Tabular Combined Notation version 3 (formerly)Testing and Test Control Notation (new resolution) +TTCN–3:: Tree and Tabular Combined Notation version 3 (formerly)Testing and Test Control Notation (new resolution) TTCNPP:: TTCN Preprocessable (file) diff --git a/org.eclipse.titanium/docs/Titanium_referenceguide/Titanium_referenceguide.adoc b/org.eclipse.titanium/docs/Titanium_referenceguide/Titanium_referenceguide.adoc index 398b03a3f3663163be03a2e9022ef26f7262dc38..b3e90ab2946fd995102514e39234fc1587e4ec04 100644 --- a/org.eclipse.titanium/docs/Titanium_referenceguide/Titanium_referenceguide.adoc +++ b/org.eclipse.titanium/docs/Titanium_referenceguide/Titanium_referenceguide.adoc @@ -42,7 +42,7 @@ The purpose of this document is to provide detailed information on writing compo == Target Groups -This document is intended for programmers of TTCN–3 test suites with information in addition to that provided in the TITAN User Guide <<_3, [3]>>. It is recommended that the programmer reads the TITAN User Guide before reading this document. +This document is intended for programmers of TTCN–3 test suites with information in addition to that provided in the TITAN User Guide <<_3, [3]>>. It is recommended that the programmer reads the TITAN User Guide before reading this document. == Typographical Conventions @@ -320,7 +320,7 @@ The last, important step is to refresh the documentation. In the chapter Titaniu Example: -In docs/Titanium – 1551 +In docs/Titanium – 1551 Titanium Preferences / Code Smell Preferences / Potential structural problems @@ -582,16 +582,16 @@ The *`.xls`* format used by the *`jxl`* library only supports 255 columns in a t [[_6]] -* [6] TTCN–3 Style Guide +* [6] TTCN–3 Style Guide [[_7]] -* [7] TTCN–3 Naming Convention +* [7] TTCN–3 Naming Convention [[_8]] * [8] link:https://www.etsi.org/deliver/etsi_es/201800_201899/20187310/04.05.01_60/es_20187310v040501p.pdf[Methods for Testing and Specification (MTS);The Testing and Test Control Notation version 3.Part 1: Core Language European Telecommunications Standards Institute. ES 201 873-1 Version 4.5.1, April 2013] [[_9]] -* [9] link:https://www.etsi.org/deliver/etsi_es/201800_201899/20187304/04.04.01_60/es_20187304v040401p.pdf[Methods for Testing and Specification (MTS);The Testing and Test Control Notation version 3.Part 4: TTCN–3 Operational Semantics European Telecommunications Standards Institute. ES 201 873-4 Version 4.4.1, April 2012] +* [9] link:https://www.etsi.org/deliver/etsi_es/201800_201899/20187304/04.04.01_60/es_20187304v040401p.pdf[Methods for Testing and Specification (MTS);The Testing and Test Control Notation version 3.Part 4: TTCN–3 Operational Semantics European Telecommunications Standards Institute. ES 201 873-4 Version 4.4.1, April 2012] [[_10]] -* [10] link:https://www.etsi.org/deliver/etsi_es/201800_201899/20187307/04.05.01_60/es_20187307v040501p.pdf[Methods for Testing and Specification (MTS);The Testing and Test Control Notation version 3.Part 7: Using ASN.1 with TTCN–3 European Telecommunications Standards Institute. ES 201 873-7 Version 4.5.1, April 2013] +* [10] link:https://www.etsi.org/deliver/etsi_es/201800_201899/20187307/04.05.01_60/es_20187307v040501p.pdf[Methods for Testing and Specification (MTS);The Testing and Test Control Notation version 3.Part 7: Using ASN.1 with TTCN–3 European Telecommunications Standards Institute. ES 201 873-7 Version 4.5.1, April 2013]