This repository contains the official supporting materials to the paper “Integration Complexity,” submitted to the 36th Annual INCOSE International Symposium (IS2026). The symposium was held June 13-18 at the Pacifico Yokohama Conference Center in Yokohama, Japan.
Integration Complexity (NTC) is a simple, quantifiable metric that assesses the complexity of external component interfaces. However, while it currently focuses on application-level integration, NTC is a general theoretical complexity metric under formulation. Consequently, the metric will expand to include other integration types, such as data-level and message-based integration.
One of the primary objectives of the research focused on complexity visualization. As a result, the repository includes the Synthetic Data Generator used to create the datasets. The generator, developed during the research, initially supported basic exploratory experiments, but became cumbersome to configure programmatically as datasets grew in size. Consequently, the author also developed an internal Java domain-specific language (DSL) to simplify the configuration process. The project containing the DSL is also part of the repository. In addition, the repository includes multiple configuration files, datasets, Wolfram Mathematica notebooks, and plots of the Integration Complexity Plane (ICP).
The table below summarizes the DSL constructs and their properties. Currently, it is possible to either generate synthetic data based on the subset configuration or read and, optionally, transform previously generated data from files. The latter option facilitates simulating incremental changes in complexity over time.
| Construct | Name | Description |
|---|---|---|
| dataset | name | Dataset name |
| · | description | Dataset description |
| · | offset | Offset between interfaces of equal complexity |
| · | displacement | Enables the displacement of interfaces of equal complexity |
| · | distribution | Enables simultaneous displacement across all subsets |
| · | detectOverwrite | Constrains overwriting interfaces during displacement |
| · | detectNegativeCoordinate | Constrains placing interfaces in negative quadrants |
| · | fileName | Dataset file name (e.g, sdg113.json) |
| · | targetFolder | The destination folder of the configuration files |
| · | addSet... | Instantiates a new set |
| set | name | Set name |
| · | description | Set description |
| · | fileName | Set file name (e.g, sdg113-001.csv) |
| · | addSubset... | Instantiates a new subset |
| subset | name | Subset name |
| · | description | Subset description |
| · | size | Subset size |
| · | minParamCount | Minimum number of method parameters |
| · | maxParamCount | Maximum number of method parameters (inclusive) |
| · | sgcCmplx | Signature complexities (e.g., 0.1, 0.2, 0.3) |
| · | rtcCmplx | Return complexities (e.g., 0.5, 0.7) |
| · | addSource... | Instantiates a new source |
| source | name | Source name |
| · | description | Source description |
| · | fileNames | The names of the data files (e.g, sdg113d-001.csv) |
| · | sourceFolder | The source folder containing the data files |
| · | addTransformation... | Instantiates a new transformation |
| transformation | name | Transformation name |
| · | description | Transformation description |
| · | sgcCmplx | Signature complexities (e.g., 0.1, 0.2, 0.3) |
| · | rtcCmplx | Return complexities (e.g., 0.5, 0.7) |
| · | probability | The likelihood that the interface will be chosen (e.g, 0.5) |
| · | iterations | The number of times the transformation gets applied |
Note: Constructs are imported statically from the SyntheticBuilderFactory class.
The following configuration file belongs to Plot 8 and was created during the initial exploratory research. It generates the ICP visualization of 836 external component interfaces. Comprised of three datasets, each containing three subsets, the example demonstrates how to configure methods of specific arity. The data distribution between Subsystems 1, 2, and 3 is 38%, 36%, and 26%, respectively.
| Overall Total | Set | Set Distribution | Set Total | Subset | Subset Distribution | Subset Total |
|---|---|---|---|---|---|---|
| 836 | 1 | 38% | 318 | 1 | 82% | 260 |
| · | · | · | · | 2 | 11% | 35 |
| · | · | · | · | 3 | 7% | 22 |
| · | 2 | 36% | 301 | 1 | 77% | 232 |
| · | · | · | · | 2 | 12% | 36 |
| · | · | · | · | 3 | 11% | 33 |
| · | 3 | 26% | 217 | 1 | 82% | 178 |
| · | · | · | · | 2 | 12% | 26 |
| · | · | · | · | 3 | 6% | 13 |
Note: Configurations such as Plot 8 enable visualization of functional distributions and method densities.
dataset("Plot 8", "sdg008.json")
.description("Integration Complexity")
.offset(0.005)
.displacement(true)
.distribution(false)
.detectOverwrite(true)
.detectNegativeCoordinate(true)
.addSet(set("Subsystem 1", "sdg008-001.csv")
.description("Components")
.addSubset(subset("API 1")
.description("Monadic to Polyadic Non-void Methods")
.size(260)
.minParamCount(1)
.maxParamCount(12)
.sgcCmplx(0.1, 0.2, 0.3, 0.5, 0.7)
.rtcCmplx(0.1, 0.2, 0.3, 0.5))
.addSubset(subset("API 1")
.description("Niladic Non-void Methods")
.size(22)
.minParamCount(0)
.maxParamCount(0)
.sgcCmplx(0.0)
.rtcCmplx(0.1, 0.2, 0.3, 0.5))
.addSubset(subset("API 1")
.description("Monadic to Polyadic Void Methods")
.size(35)
.minParamCount(1)
.maxParamCount(12)
.sgcCmplx(0.1, 0.2, 0.3, 0.5, 0.7)
.rtcCmplx(0.0)))
.addSet(set("Subsystem 2", "sdg008-002.csv")
.description("Components")
.addSubset(subset("API 2")
.description("Monadic to Polyadic Non-void Methods")
.size(232)
.minParamCount(1)
.maxParamCount(12)
.sgcCmplx(0.1, 0.2, 0.3, 0.5, 0.7)
.rtcCmplx(0.1, 0.2, 0.3, 0.5))
.addSubset(subset("API 2")
.description("Niladic Non-void Methods")
.size(36)
.minParamCount(0)
.maxParamCount(0)
.sgcCmplx(0.0)
.rtcCmplx(0.1, 0.2, 0.3, 0.5))
.addSubset(subset("API 2")
.description("Monadic to Polyadic Void Methods")
.size(33)
.minParamCount(1)
.maxParamCount(12)
.sgcCmplx(0.1, 0.2, 0.3, 0.5, 0.7)
.rtcCmplx(0.0)))
.addSet(set("Subsystem 3", "sdg008-003.csv")
.description("Components")
.addSubset(subset("API 3")
.description("Monadic to Polyadic Non-void Methods")
.size(178)
.minParamCount(1)
.maxParamCount(12)
.sgcCmplx(0.1, 0.2, 0.3, 0.5, 0.7)
.rtcCmplx(0.1, 0.2, 0.3, 0.5))
.addSubset(subset("API 3")
.description("Niladic Non-void Methods")
.size(13)
.minParamCount(0)
.maxParamCount(0)
.sgcCmplx(0.0)
.rtcCmplx(0.1, 0.2, 0.3, 0.5))
.addSubset(subset("API 3")
.description("Monadic to Polyadic Void Methods")
.size(26)
.minParamCount(1)
.maxParamCount(12)
.sgcCmplx(0.1, 0.2, 0.3, 0.5, 0.7)
.rtcCmplx(0.0)))
.targetFolder("/Users/agonzalez/Desktop/Datasets/sdg008")
.print()
.save();
Note: Configuration of the Synthetic Data Generator using an internal Java DSL.
The configuration file drives the entire data generation process. The generator compiles into an executable JAR file, which makes it accessible locally via a command-line interface (CLI). During the process, it aggregates data from all subsets within a set and exports a file that later becomes an input to Wolfram Mathematica.
java -jar synthetic-data-generator-1.0.0.jar sdg008.json
The Integration Complexity Plane (ICP) is generated by projecting Signature Complexity (SGC), Return Complexity (RTC), and Integration Complexity (NTC) into a three-dimensional coordinate system. The accompanying notebooks can serve as the foundation for further experimentation.
sdg008001 = Import["sdg008-001.csv"]
sdg008002 = Import["sdg008-002.csv"]
sdg008003 = Import["sdg008-003.csv"]
combinedList = {sdg008001, sdg008002, sdg008003};
ListPointPlot3D[combinedList,
Filling -> Bottom,
ImageSize -> 650,
PlotRange -> All,
AxesLabel -> {"SGC", "RTC", "NTC"},
PlotLegends -> {"Subsystem 1", "Subsystem 2", "Subsystem 3"},
PlotStyle -> {RGBColor["#A31F34"], RGBColor["#B4B4B4"], RGBColor["#ED7700"]},
ViewPoint -> Top,
LabelingFunction -> (#1[[3]] &)]
Note: The notebooks provide additional information.
All of the content, in its entirety, including but not limited to ideas, concepts, formulations, principles, tables, source code, diagrams, and plots, is the original work of the author and was author-generated unless otherwise specified.
Ariel Gonzalez
Copyright © 2026 Ariel Gonzalez. All rights reserved.
