FM3 (1.1.1709)

Added joins and set operations to YT query language

The query language now supports SQL-like joins and – for result sets with identical columns – the set operations union, reduce, and intersect.

// Example for join of Query_A and Query_B
query "some join query"	
	source (join(q('Query_A'), "joinColumnOfA", q('Query_B'), "joinColumnOfB"))
	.collect(left("someColumnOfA"), right("joinColumnOfB"), right("someColumnOfB"))
	.where(right("joinColumnOfA")==left("joinColumnOfB"))
// Example for set operations reduceBy and union	
query "Passed SW-Integration-Tests"
source(
	reduceBy(q('All SW-Integration-Tests'), 
		union(q('Failed SW-Integration-Tests'),q('Untested SW-Integration-Tests'))
	)
).collect(column("SW_Int_Test"))

Unified configuration of Model Viewer (Matlab-Simulink/Stateflow) adapter

The configuration for traceable artifacts of Matlab-Simulink (i.e., blocks) and Stateflow models (i.e., states and/or transitions) has been unified.

// Example mapping for blocks and states
include blocks  if(valueOf(path) contains "StatechartHierarchyOr/Chart2/") {
	name "B_" + valueOf(name)
	//  matlab_type is mapped only for blocks 
	map{ matlab_type to valueOf(type) }
}
include states if(valueOf(name) contains "State1" ) {
	name "S1_"+valueOf(name)
}
//  matlab_path is mapped both for blocks and states
map{ matlab_path to valueOf(path) }

Attribute mapping now supports recognition of regular expression matches, prefix and suffix

The flexibility of attribute mapping has been improved significantly. The mapping configuration now supports attribute evaluations based on regular expression groups and/or cutting out of prefixes and suffixes.

Here’s a „prefix” example:

where A. attribute.separatedBy("/").substringBefore(":") in [...]   
//In this case, an attribute value of „A:1/B:2/C:3” 
//will result in a list of 3 values [A, B, C] considered for attribute mapping.

For more details, refer to Attribute mapping documentation

Improvements to the DOORS adapter

Support of multiple projects

The DOORS data access now supports wildcards in the project names, i.e., it is possible to extract requirements and links out of a set of projects. Note that when using this feature, the specification of a baseline is not supported.

projects "/YT/*/IMPORTANT/*_PROJECT" 
undefined attribute value = "MY_UNDEFINED_VALUE"

YT is able to recognize DOORS projects and modules as traceable artifacts

With an artifact type being configured in a DOORS artifact type, YT is able to recognize DOORS projects and modules as traceable artifacts.

artifact type = Module 
include projects if(
 valueOf("Name") == "MY_PROJECT"
)
include modules if(
 valueOf("FullName") == "MY_NAME"
 valueOf("Created By") != "ME"
) 

YT is able to extract external links out of DOORS

DOORS' external links can now be mapped to attributes of YT artifacts. YT extracts the entirety of external links – separated by comma – for the given requirements into one attribute.

map {
 EXTERNAL_LINKS to external links 
}

Added constraint: Only one DOORS data access can be activated at one point in time

YT facilitates direct navigation from C files to linked artifacts

YT can now directly navigate from the C editor to any linked artifacts, e.g. requirements in an external tool. When pressing the [Ctrl] in the C editor the link information turns into hyperlinks on mouse-over.

Improved usability of text filter in YT Explorer

When the user enters a regular expression as textual filter in the YT Explorer, YT now assumes the .* wildcard at both start and end of the regular expression entered by the user.

Improved performance of Excel adapter

We closed a performance leak that occured if a column with header was specified, but the specified header did not exist in the Excel sheet.

Improved recognition of XML artifacts

YT now honors the identified by part of the configuration of XML-based artifact types. In addition, the XML adapter is now more robust regarding document changes when recognizing XML nodes. The performance has been tweaked as well.

Improved coverage report

The built-in link type-based coverage report now contains bar charts and creation date.

YT Overview does no longer provide means to show the whole trace graph

The menu item View Context → All traces has been removed from the YT Overview. Even for small projects this functionality had been proven to be not adequate. As an alternative, you may utilize YT’s Graphviz export to see the whole graph. It can be triggered in the Traceability menu: Traceability → Export → Export Data.

YT data extract reports an error if any adapter gets disabled

In GUI mode, YT may disable adapters, e.g. due to faulty configurations. Even if one adapter is deactivated, other adapters remain active and provide traceable artifacts and links. During data extracts in batch mode, such a situation is now considered as global configuration error; the batch data extract returns an exit code signaling an error (i.e., != 0) in such cases.

Bug fixes

Fixed a bug when searching a non-existing column header in Microsoft Excel

When YT had been configured

  • to consider multiple Excel sheets in the same file and
  • at least one of these sheets did not contain the „header” that had been configured to identify traceable artifacts in YT

the Excel adapter ran into a bug and did not find any artifacts.

Now, the sheet without a matching header is ignored. Only matching artifacts from other sheets are recognized.

Fixed „select and reveal” when opening a Microsoft Word document

When the user triggered YT to show an artifact which had been extracted from Microsoft Word, YT opened the document, selected the given artifact, but did not scroll to the position of the artifact. Now, YT opens the document and selects and reveals the artifact in such cases.

Fix in Enterprise Architect adapter

When links were stored in Enterprise Architect, YT populated the link attributes only if they were fed from link end A. Now, YT considers both link ends.