Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'websites/www.eclipse.org-app4mc-hugo')
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/content/documentation/index.md8
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/content/downloads/index.md21
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/content/news/2019-02-04_release_0-9-3.md26
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3-help.zipbin0 -> 9845626 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/css/frames.css43
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/css/help.css143
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/css/toc-icons.pngbin0 -> 286 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/css/toc-style.css128
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/01-create-new-example.pngbin0 -> 26213 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/02-select-democar-example.pngbin0 -> 31813 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/03_democar-example-finish.pngbin0 -> 20548 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/2015-06-19_sphinx_validation_catalog.pngbin0 -> 11128 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/amalthea_import_options.pngbin0 -> 17187 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/amalthea_models.pngbin0 -> 17517 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/amalthea_models_actions.pngbin0 -> 79082 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/amalthea_system_model.pngbin0 -> 15281 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/amalthea_trace_db_example.pngbin0 -> 34397 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/app4mc-logo-g.pngbin0 -> 32984 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/app4mc_platform_features.pngbin0 -> 14585 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/atdb_erm_model.pngbin0 -> 26413 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/atdb_import_dialogue.pngbin0 -> 13420 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/atdb_import_result.pngbin0 -> 20469 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/cache_builder.pngbin0 -> 9965 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/converters_content.pngbin0 -> 7650 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/converters_dependencies.pngbin0 -> 17315 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/converters_dependencies_details.pngbin0 -> 19934 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/converters_extension_points.pngbin0 -> 4089 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/different_model_versions.pngbin0 -> 18053 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/example_hw_example_1_diagram.pngbin0 -> 20503 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/example_hw_example_1_editor.pngbin0 -> 18592 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/example_hw_example_2_diagram.pngbin0 -> 80497 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/example_hw_example_2_editor.pngbin0 -> 21823 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/export_model.pngbin0 -> 20512 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/export_wizard1.pngbin0 -> 33593 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/export_wizard2.pngbin0 -> 34143 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_access_path_example.pngbin0 -> 34489 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_connection_handler_example.pngbin0 -> 17903 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_connection_handler_parallel_accesses_1.pngbin0 -> 7800 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_connection_handler_parallel_accesses_3.pngbin0 -> 8819 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_domain_example.pngbin0 -> 11053 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_feature_example.pngbin0 -> 18287 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_memory_address_example.pngbin0 -> 7047 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_port_example.pngbin0 -> 26230 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_port_example_i_r.pngbin0 -> 6204 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_port_example_i_r_with_delegated_ports.pngbin0 -> 19832 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_structure_example.pngbin0 -> 17923 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/import_franca-core.pngbin0 -> 24325 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/linked_files_creation.pngbin0 -> 40912 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/metric-viewer_open.pngbin0 -> 26234 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/metric-viewer_table.pngbin0 -> 18208 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/migration_dialog.pngbin0 -> 40351 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/migration_flow.pngbin0 -> 20515 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model__activations.pngbin0 -> 43165 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model__stimuli.pngbin0 -> 41673 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_classifier.pngbin0 -> 21348 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_custom_property.pngbin0 -> 14892 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_custom_property_value.pngbin0 -> 58588 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_data_rate.pngbin0 -> 44882 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_data_size.pngbin0 -> 37288 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_beta.pngbin0 -> 26986 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_boundaries_1.pngbin0 -> 38537 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_boundaries_2.pngbin0 -> 23062 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_normal.pngbin0 -> 36290 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_time_histogram.pngbin0 -> 19632 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_uniform.pngbin0 -> 24106 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_weibull.pngbin0 -> 28121 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviations_abstract.pngbin0 -> 38943 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviations_time.pngbin0 -> 124936 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_elements.pngbin0 -> 15378 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_frequency.pngbin0 -> 21418 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_interfaces_base_objects.pngbin0 -> 50623 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_statistic.pngbin0 -> 17117 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_tag.pngbin0 -> 8800 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_ticks.pngbin0 -> 18911 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_time.pngbin0 -> 29004 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components.pngbin0 -> 65608 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_common.pngbin0 -> 58914 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_component_references.pngbin0 -> 45866 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_example.pngbin0 -> 23846 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_example_treeview.pngbin0 -> 35956 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_franca_idl.pngbin0 -> 49185 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_isystem.pngbin0 -> 22010 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_config_overview.pngbin0 -> 14743 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_config_sample.pngbin0 -> 33375 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints.pngbin0 -> 63033 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_affinity.pngbin0 -> 34278 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_affinity_data.pngbin0 -> 25421 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_affinity_process.pngbin0 -> 35672 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_affinity_runnable.pngbin0 -> 36944 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_data_age.pngbin0 -> 29900 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_data_coherency.pngbin0 -> 46499 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_data_stability.pngbin0 -> 32855 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_delayconstraint_onetoone.pngbin0 -> 25092 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_delayconstraint_reaction.pngbin0 -> 26171 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_delayconstraint_uniquereaction.pngbin0 -> 42525 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_eventchain.pngbin0 -> 42435 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_eventchain_eventgroups.pngbin0 -> 31470 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_eventchain_segments.pngbin0 -> 10884 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_activatetoactivate.pngbin0 -> 2636 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_endtoend.pngbin0 -> 2533 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_endtostart.pngbin0 -> 2657 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_grossexecutiontime.pngbin0 -> 2517 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_lateness.pngbin0 -> 2185 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_netexecutiontime.pngbin0 -> 2775 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_pollingtime.pngbin0 -> 2409 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_readytime.pngbin0 -> 2402 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_responsetime.pngbin0 -> 2433 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_runningtime.pngbin0 -> 2631 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_startdelay.pngbin0 -> 2286 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_starttostart.pngbin0 -> 2508 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_waitingtime.pngbin0 -> 2462 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_requirements.pngbin0 -> 222710 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_runnable_sequencing.pngbin0 -> 46124 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_runnable_sequencing_basic.pngbin0 -> 17695 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_runnable_sequencing_scope.pngbin0 -> 54924 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_timing_delay.pngbin0 -> 34791 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_timing_latency.pngbin0 -> 31442 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_timing_repetition.pngbin0 -> 21907 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_timing_sync.pngbin0 -> 49602 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_custom_entity.pngbin0 -> 33849 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_dependencies.pngbin0 -> 34523 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_events.pngbin0 -> 186249 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_events_process.pngbin0 -> 118100 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_franca_editor_screenshot.pngbin0 -> 22911 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_hw_access.pngbin0 -> 36134 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_hw_definition.pngbin0 -> 102041 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_hw_main.pngbin0 -> 159070 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_hw_module.pngbin0 -> 89408 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_mapping_allocation.pngbin0 -> 41667 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_mapping_overview.pngbin0 -> 113223 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_measurement.pngbin0 -> 31126 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_migration_sequence_diagram.pngbin0 -> 61288 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_data_consistency.pngbin0 -> 76618 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_operatingsystem.pngbin0 -> 57421 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_osoverhead.pngbin0 -> 73440 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_overview.pngbin0 -> 52081 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_scheduler.pngbin0 -> 35792 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_scheduler_association.pngbin0 -> 39804 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_scheduling_parameters.pngbin0 -> 33762 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_semaphore.pngbin0 -> 32215 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_propertyconstraints_example.pngbin0 -> 59427 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_propertyconstraints_overview.pngbin0 -> 99371 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_section.pngbin0 -> 16986 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_section_memory.pngbin0 -> 4698 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli.pngbin0 -> 12445 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_arrival_curve_1.pngbin0 -> 3579 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_arrival_curve_2.pngbin0 -> 16877 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_arrival_curve_3.pngbin0 -> 19189 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_arrival_curve_4.pngbin0 -> 18890 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_arrival_curve_5.pngbin0 -> 14931 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_clocks.pngbin0 -> 35365 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_modevaluelist.pngbin0 -> 46371 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_periodic.pngbin0 -> 20402 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_periodic_burst.pngbin0 -> 79341 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_periodic_jitter.pngbin0 -> 27105 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_periodic_relative.pngbin0 -> 66844 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_single.pngbin0 -> 13311 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_stimuli.pngbin0 -> 96132 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_synthetic.pngbin0 -> 13689 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_variablerate.pngbin0 -> 68472 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_activation.pngbin0 -> 53464 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_call_graph.pngbin0 -> 4973 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_channel.pngbin0 -> 18086 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_data_dependency.pngbin0 -> 15686 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_dataflow_overview.pngbin0 -> 20286 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_depends_on.pngbin0 -> 27587 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_executionneed.pngbin0 -> 16614 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_hw_features_executionneed.pngbin0 -> 17580 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_label.pngbin0 -> 58663 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_memory_inf.pngbin0 -> 60912 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_modecondition.pngbin0 -> 52067 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_modes.pngbin0 -> 22448 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_modeswitch.pngbin0 -> 33902 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_osevents.pngbin0 -> 58936 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_probabilityswitch.pngbin0 -> 18315 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_process_chain.pngbin0 -> 15645 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_process_prototype.pngbin0 -> 103365 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items_1_group.pngbin0 -> 12153 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items_3_semaphores.pngbin0 -> 67800 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items_4_modes.pngbin0 -> 27225 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items__calls.pngbin0 -> 76930 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items__channel_access.pngbin0 -> 62283 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items__label_access.pngbin0 -> 110225 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items__triggers.pngbin0 -> 14240 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_overview.pngbin0 -> 25343 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnablemodeswitch.pngbin0 -> 32449 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnableprobabilityswitch.pngbin0 -> 17954 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_statistic.pngbin0 -> 74126 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_task_callgraph.pngbin0 -> 55918 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_task_callgraph_structure.pngbin0 -> 34245 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_task_isr.pngbin0 -> 50371 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_type_sample.pngbin0 -> 18492 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_type_system.pngbin0 -> 58836 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_transient_backpointer_ui.pngbin0 -> 37546 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_gantt.pngbin0 -> 9658 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_hw.pngbin0 -> 16079 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_mapping.pngbin0 -> 10241 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_runnables.pngbin0 -> 24061 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_schedulers.pngbin0 -> 17039 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_stimuli.pngbin0 -> 16229 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_tasks.pngbin0 -> 32510 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_gantt.pngbin0 -> 24419 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_hw.pngbin0 -> 17012 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_mapping.pngbin0 -> 11031 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_runnables.pngbin0 -> 39499 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_scheduler.pngbin0 -> 14273 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_stimuli.pngbin0 -> 20060 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_tasks.pngbin0 -> 33534 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server.pngbin0 -> 41808 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_1.pngbin0 -> 16507 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_2.pngbin0 -> 14384 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_3.pngbin0 -> 14442 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_4.pngbin0 -> 13655 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_5.pngbin0 -> 16806 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_6.pngbin0 -> 17306 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_7.pngbin0 -> 16985 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_8.pngbin0 -> 12703 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_9.pngbin0 -> 4873 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop.pngbin0 -> 65957 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_1.pngbin0 -> 25441 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_2.pngbin0 -> 40112 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_3.pngbin0 -> 37048 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_4.pngbin0 -> 33387 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_5.pngbin0 -> 39846 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_6.pngbin0 -> 43105 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_7.pngbin0 -> 41728 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_8.pngbin0 -> 51386 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_9.pngbin0 -> 23382 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_1.pngbin0 -> 13392 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_2.pngbin0 -> 17921 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_3.pngbin0 -> 25029 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_4.pngbin0 -> 33950 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_5.pngbin0 -> 18551 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_6.pngbin0 -> 33893 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_7.pngbin0 -> 34285 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_8.pngbin0 -> 33846 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_9.pngbin0 -> 35789 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_scheduler_hierarchical.pngbin0 -> 51901 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_scheduler_legend.pngbin0 -> 12287 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_scheduler_partitioned_fpp.pngbin0 -> 81686 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine.pngbin0 -> 28421 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_1.pngbin0 -> 16688 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_2.pngbin0 -> 16473 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_3.pngbin0 -> 17141 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_4.pngbin0 -> 15703 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_5.pngbin0 -> 19499 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_6.pngbin0 -> 20094 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_7.pngbin0 -> 20374 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_8.pngbin0 -> 14924 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_9.pngbin0 -> 5843 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop.pngbin0 -> 40799 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_1.pngbin0 -> 15183 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_2.pngbin0 -> 22775 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_3.pngbin0 -> 24512 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_4.pngbin0 -> 23298 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_5.pngbin0 -> 28315 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_6.pngbin0 -> 28274 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_7.pngbin0 -> 28682 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_8.pngbin0 -> 32783 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_9.pngbin0 -> 16133 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/models_selection.pngbin0 -> 26976 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/osbuffering_migration_071_072.pngbin0 -> 19311 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/post_processor.pngbin0 -> 26531 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/pre_processor.pngbin0 -> 18836 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/process_prototypes.pngbin0 -> 8785 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sample_workflow.pngbin0 -> 80152 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/show_plugins_view.pngbin0 -> 23172 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_convert_project.pngbin0 -> 52071 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_event_chain_view_create.pngbin0 -> 39893 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_event_chain_view_show.pngbin0 -> 20698 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_label_view_1.pngbin0 -> 20232 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_label_view_create.pngbin0 -> 47864 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_mapping_view_create.pngbin0 -> 20999 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_mapping_view_show.pngbin0 -> 29180 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_1.pngbin0 -> 21114 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_comm_layer_enable.pngbin0 -> 25414 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_comm_layer_show1.pngbin0 -> 21373 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_create.pngbin0 -> 34804 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_label_layer_enable.pngbin0 -> 25048 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_label_layer_show.pngbin0 -> 55955 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_tasks_view_create.pngbin0 -> 17732 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_tasks_view_show.pngbin0 -> 80819 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_viewpoints_selection.pngbin0 -> 11802 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sphinx_validation_results.pngbin0 -> 53676 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sphinx_validation_selection.pngbin0 -> 15341 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sphinx_validation_trigger_command.pngbin0 -> 44629 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_add_schedule_points.pngbin0 -> 7272 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_add_schedule_points_mwe2.pngbin0 -> 8051 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_context.pngbin0 -> 3314 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_create_tasks.pngbin0 -> 7867 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_default_context.pngbin0 -> 7146 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_model_reader.pngbin0 -> 9088 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_model_reader_mwe2.pngbin0 -> 10246 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_model_writer.pngbin0 -> 14046 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_model_writer_mwe2.pngbin0 -> 16144 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_workflow_component.pngbin0 -> 9877 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_workflow_component_mwe2.pngbin0 -> 9055 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_workflow_overview.pngbin0 -> 6776 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_workflow_overview_sequence.pngbin0 -> 33038 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user-scheduling-hierarchy.pngbin0 -> 19206 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user-scheduling-sched-allocation.pngbin0 -> 14096 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user-scheduling-task-allocation.pngbin0 -> 16204 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_channel.pngbin0 -> 31589 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_channel_access.pngbin0 -> 33133 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_channel_example.pngbin0 -> 119676 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_channel_operations.pngbin0 -> 37789 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_channel_transmission_example.pngbin0 -> 28509 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_editor_with_central_model.pngbin0 -> 36847 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_commands.pngbin0 -> 11757 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_search_input.pngbin0 -> 20166 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_search_result1.pngbin0 -> 41996 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_search_result2.pngbin0 -> 13837 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_showtypes.pngbin0 -> 29371 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_structure.pngbin0 -> 58219 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_step1_create-project.pngbin0 -> 35262 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_step2_create-folder.pngbin0 -> 35786 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_step3_create-model.pngbin0 -> 33972 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_access_paths.pngbin0 -> 18633 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_definition_example.pngbin0 -> 31558 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_feature_runnable_connection.pngbin0 -> 33598 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_feature_runnable_example.pngbin0 -> 11007 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_latencies.pngbin0 -> 3711 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_model_class_diagram.pngbin0 -> 108969 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_recipe_concept.pngbin0 -> 16517 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_section_amalthea.pngbin0 -> 36859 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_section_label_ref_to_memsection.pngbin0 -> 6849 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_section_linker_memsection.pngbin0 -> 9547 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_section_virtual_to_physical.pngbin0 -> 20712 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_data_dependency_view.pngbin0 -> 49175 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_new_runnable_item.pngbin0 -> 52203 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_runtime_gantt.pngbin0 -> 19047 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_runtime_gantt_runnable.pngbin0 -> 18674 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_runtime_gantt_semaphore.pngbin0 -> 18759 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_runtime_gantt_signal.pngbin0 -> 19029 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_runtime_gantt_task.pngbin0 -> 18703 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/vm_arguments_configuration.pngbin0 -> 29117 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/index.html13337
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/AmaltheaIndex.html259
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/AmaltheaMerger.html140
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/AmaltheaServices.html516
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/AmaltheaBuilder.html326
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/CommonElementsBuilder.html172
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/ConstraintsBuilder.html298
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/DatatypeBuilder.html444
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/HardwareBuilder.html472
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/InstructionsBuilder.html176
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/MappingBuilder.html217
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/OperatingSystemBuilder.html339
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/SoftwareBuilder.html1361
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/package-summary.html68
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/io/AmaltheaLoader.html188
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/io/AmaltheaWriter.html195
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/io/package-summary.html38
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/package-summary.html48
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/CustomPropertyUtil.html242
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/DeploymentUtil.html342
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/FactoryUtil.html448
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/HardwareUtil.html318
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/ModelUtil.html270
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/RuntimeUtil.AccessDirection.html201
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/RuntimeUtil.PositionType.html201
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/RuntimeUtil.TimeType.html213
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/RuntimeUtil.html871
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/SoftwareUtil.html1409
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/TimeUtil.html153
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/package-summary.html85
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/stylesheet.css574
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/zip/ecore-definitions.zipbin0 -> 45663 bytes
-rw-r--r--websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/zip/xml-schema-definitions.zipbin0 -> 23271 bytes
369 files changed, 24277 insertions, 13 deletions
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/content/documentation/index.md b/websites/www.eclipse.org-app4mc-hugo/site/content/documentation/index.md
index 9c2b592..fd19e18 100644
--- a/websites/www.eclipse.org-app4mc-hugo/site/content/documentation/index.md
+++ b/websites/www.eclipse.org-app4mc-hugo/site/content/documentation/index.md
@@ -1,6 +1,6 @@
---
title: "Documentation"
-date: 2018-11-06
+date: 2019-02-04
hide_sidebar: "false"
---
@@ -11,13 +11,15 @@ hide_sidebar: "false"
### Help
---
-<a href="/help/app4mc-0.9.2/index.html" target="_blank">APP4MC 0.9.2 - Online Help</a> (opens in new tab)
+<a href="/help/app4mc-0.9.3/index.html" target="_blank">APP4MC 0.9.3 - Online Help</a> (opens in new tab)
-[APP4MC 0.9.2 - Help](/help/app4mc-0.9.2-help.zip) (zip archive)
+[APP4MC 0.9.3 - Help](/help/app4mc-0.9.3-help.zip) (zip archive)
<br>
#### Previous versions:
+APP4MC 0.9.2 - [online](/help/app4mc-0.9.2/index.html) - [zip](/help/app4mc-0.9.2-help.zip)
+
APP4MC 0.9.1 - [online](/help/app4mc-0.9.1/index.html) - [zip](/help/app4mc-0.9.1-help.zip)
APP4MC 0.9.0 - [online](/help/app4mc-0.9.0/index.html) - [zip](/help/app4mc-0.9.0-help.zip)
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/content/downloads/index.md b/websites/www.eclipse.org-app4mc-hugo/site/content/downloads/index.md
index 6976bf9..ef75614 100644
--- a/websites/www.eclipse.org-app4mc-hugo/site/content/downloads/index.md
+++ b/websites/www.eclipse.org-app4mc-hugo/site/content/downloads/index.md
@@ -1,5 +1,5 @@
---
-date: 2015-09-14T16:35:03+02:00
+date: 2019-02-04
title: "Downloads"
weight: 5
hide_sidebar: "true"
@@ -7,31 +7,32 @@ hide_sidebar: "true"
---
-### **Release 0.9.2**
-##### 2018-11-06 &nbsp;&nbsp; - &nbsp;&nbsp; based on Oxygen.3a
+### **Release 0.9.3**
+##### 2019-01-31 &nbsp;&nbsp; - &nbsp;&nbsp; based on Oxygen.3a
---
#### Products
-* APP4MC Platform 0.9.2 for **Linux (64 Bit)** - [Zip-archive](http://www.eclipse.org/downloads/download.php?file=/app4mc/products/releases/0.9.2/org.eclipse.app4mc.platform-0.9.2-20181031-142623-linux.gtk.x86_64.zip) (370 MB)
+* APP4MC Platform 0.9.3 for **Linux (64 Bit)** - [Zip-archive](
+http://www.eclipse.org/downloads/download.php?file=/app4mc/products/releases/0.9.3/org.eclipse.app4mc.platform-0.9.3-20190131-101044-linux.gtk.x86_64.zip) (355 MB)
-* APP4MC Platform 0.9.2 for **OSX (64 Bit)** - [Zip-archive](http://www.eclipse.org/downloads/download.php?file=/app4mc/products/releases/0.9.2/org.eclipse.app4mc.platform-0.9.2-20181031-142623-macosx.cocoa.x86_64.zip) (370 MB)
+* APP4MC Platform 0.9.3 for **OSX (64 Bit)** - [Zip-archive](http://www.eclipse.org/downloads/download.php?file=/app4mc/products/releases/0.9.3/org.eclipse.app4mc.platform-0.9.3-20190131-101044-macosx.cocoa.x86_64.zip) (355 MB)
-* APP4MC Platform 0.9.2 for **Windows (32 Bit)** - [Zip-archive](http://www.eclipse.org/downloads/download.php?file=/app4mc/products/releases/0.9.2/org.eclipse.app4mc.platform-0.9.2-20181031-142623-win32.win32.x86.zip) (370 MB)
+* APP4MC Platform 0.9.3 for **Windows (32 Bit)** - [Zip-archive](http://www.eclipse.org/downloads/download.php?file=/app4mc/products/releases/0.9.3/org.eclipse.app4mc.platform-0.9.3-20190131-101044-win32.win32.x86.zip) (355 MB)
-* APP4MC Platform 0.9.2 for **Windows (64 Bit)** - [Zip-archive](http://www.eclipse.org/downloads/download.php?file=/app4mc/products/releases/0.9.2/org.eclipse.app4mc.platform-0.9.2-20181031-142623-win32.win32.x86_64.zip) (370 MB)
+* APP4MC Platform 0.9.3 for **Windows (64 Bit)** - [Zip-archive](http://www.eclipse.org/downloads/download.php?file=/app4mc/products/releases/0.9.3/org.eclipse.app4mc.platform-0.9.3-20190131-101044-win32.win32.x86_64.zip) (355 MB)
#### Update Site
-* direct link: http://download.eclipse.org/app4mc/updatesites/releases/0.9.2/
+* direct link: http://download.eclipse.org/app4mc/updatesites/releases/0.9.3/
-* for offline installation: [Zip-archive of APP4MC 0.9.2 p2 repository](http://www.eclipse.org/downloads/download.php?file=/app4mc/products/releases/0.9.2/org.eclipse.app4mc.p2repo-0.9.2.zip)
+* for offline installation: [Zip-archive of APP4MC 0.9.3 p2 repository](http://www.eclipse.org/downloads/download.php?file=/app4mc/products/releases/0.9.3/org.eclipse.app4mc.p2repo-0.9.3.zip)
---
_For older versions please refer to:_
* [Eclipse APP4MC project page](https://projects.eclipse.org/projects/technology.app4mc/downloads)
-* [AMALTHEA/AMALTHEA4public project page](http://amalthea-project.org/index.php/downloads)
+
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/content/news/2019-02-04_release_0-9-3.md b/websites/www.eclipse.org-app4mc-hugo/site/content/news/2019-02-04_release_0-9-3.md
new file mode 100644
index 0000000..3cbb6cf
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/content/news/2019-02-04_release_0-9-3.md
@@ -0,0 +1,26 @@
+---
+date: 2019-02-04
+title: "APP4MC - Release 0.9.3 published"
+categories: ["news"]
+slug: "2019-02-04-release-0-9-3"
+---
+
+We released a new version of APP4MC with a couple of new features and improvements.
+
+<!--more-->
+
+__Extract of APP4MC 0.9.3__
+
+Model handling
+
+ Model migration support (0.9.2 -> 0.9.3)
+ Optimized model search
+
+Model changes / Improvements
+
+ Introduced "Ticks" as base concept for required computation effort
+ Simplified "Execution Needs" (no specific entries for different processing units)
+ Reworked distributions (discrete, continuous, time) without generics
+
+
+* Visit the [APP4MC download page](http://projects.eclipse.org/projects/technology.app4mc/downloads)
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3-help.zip b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3-help.zip
new file mode 100644
index 0000000..63d395d
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3-help.zip
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/css/frames.css b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/css/frames.css
new file mode 100644
index 0000000..2988b4d
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/css/frames.css
@@ -0,0 +1,43 @@
+
+body{
+ margin: 0;
+ padding: 0;
+ border: 0;
+ overflow: hidden;
+ height: 100%;
+ max-height: 100%;
+}
+
+#framecontent{
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ width: 350px; /*Width of frame div*/
+ height: 100%;
+ overflow: scroll;
+ background: #eee;
+ color: black;
+}
+
+#maincontent{
+ position: fixed;
+ top: 0;
+ left: 350px; /*Set left value to WidthOfFrameDiv*/
+ right: 0;
+ bottom: 0;
+ overflow-y: scroll;
+ overflow-x: hidden;
+ background: #fff;
+}
+
+.innertube{
+ margin: 10px; /*Margins for inner DIV inside each DIV (to provide padding)*/
+}
+
+article {
+ border: 1px solid #000000;
+ margin: -8px -8px 13px -8px;
+ padding: 8px 14px;
+ box-shadow: 0 4px 3px #aaa;
+}
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/css/help.css b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/css/help.css
new file mode 100644
index 0000000..6a251c8
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/css/help.css
@@ -0,0 +1,143 @@
+
+/* Additional styles */
+
+h1 {
+ font-size: 36px;
+ line-height: 40px;
+ text-align: center;
+
+ color: #015A20;
+ margin: 40px 0;
+ padding: 10px;
+}
+
+h2 {
+ font-size: 30px;
+ line-height: 40px;
+ border-bottom: solid 1px #666;
+}
+
+h3 {
+ font-size: 24px;
+ line-height: 40px;
+}
+
+h4 {
+ font-size: 18px;
+ line-height: 20px;
+ font-style: italic;
+}
+
+
+body {
+ font-family: Helvetica,Arial,sans-serif;
+ line-height: 1.3;
+}
+
+
+/* styling of code listings and code snippets */
+
+pre, code {
+ background-color: #f7f7f9;
+ border: 1px solid #e1e1e8;
+}
+
+pre {
+ padding: 10px;
+ word-break: break-all;
+ word-wrap: break-word;
+ white-space: pre-wrap;
+ border-radius: 5px;
+}
+
+code {
+ vertical-align: 5%;
+ padding: 1px 3px 0px;
+ color: #d14;
+ border-radius: 2px;
+}
+
+pre code {
+ padding: 0px;
+ color: inherit;
+ background-color: transparent;
+ border: 0;
+}
+
+
+/* styling of tables: minimal, classic */
+
+td, th {
+ padding: 6px 6px 6px 6px;
+}
+
+
+table.minimal td {
+ border-top: solid black 1px;
+}
+
+
+table.classic {
+ border: solid black 1px;
+ border-collapse: collapse;
+}
+
+table.classic th, table.classic td {
+ border: solid black 1px;
+}
+
+
+/* borders and scaling (used for images) */
+
+img.gray {
+ background: #dddddd;
+ padding: 5px;
+ margin: 10px;
+}
+
+
+img.scale {
+ max-width: 100%;
+ height: auto;
+}
+
+
+img.gray_scale {
+ background: #dddddd;
+ padding: 5px;
+ margin: 10px;
+
+ max-width: 100%;
+ height:auto;
+}
+
+
+img.shadow {
+ box-shadow: 0px 0px 5px 8px #ccc;
+ margin: 10px;
+}
+
+
+/* not applicable (because border=0 is added by default) */
+
+img.dotted {
+ border-width: 2;
+ border-color: gray;
+ border-style: dotted;
+}
+
+
+.validation-rule {
+ border-style: solid;
+ border-width: thin;
+ margin-left: 1.5cm;
+ margin-right: 1.5cm;
+}
+
+.validation-rule:before {
+ font-weight: normal;
+ font-size: larger;
+ line-height: 200%;
+ margin-left: -0.75cm;
+ content: "\26A0 VALIDATION RULES";
+}
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/css/toc-icons.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/css/toc-icons.png
new file mode 100644
index 0000000..49ec3ad
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/css/toc-icons.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/css/toc-style.css b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/css/toc-style.css
new file mode 100644
index 0000000..2aed802
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/css/toc-style.css
@@ -0,0 +1,128 @@
+
+/* Table of contents tree */
+
+
+
+/* --- basic toc-tree settings --- */
+
+.toc-tree
+{
+ user-select: none;
+ font-family: Helvetica, Arial, Sans-serif;
+ font-style: normal;
+ font-size: 14px;
+ line-height: 120%;
+}
+
+.toc-tree ul,
+.toc-tree li
+{
+ padding: 0;
+ margin: 4px 0;
+ list-style: none;
+ white-space: nowrap;
+}
+
+.toc-tree input
+{
+ position: absolute;
+ opacity: 0;
+}
+
+.toc-tree label,
+.toc-tree label::before,
+.toc-tree a
+{
+ display: inline-block;
+ height: 16px;
+ line-height: 16px;,
+ vertical-align: middle;
+}
+
+/* --- link decoration --- */
+
+.toc-tree a,
+.toc-tree a:visited
+{
+ text-decoration: none;
+ color: #0000aa;
+}
+
+.toc-tree a:hover
+{
+ text-decoration: underline;
+}
+
+/* --- indented sub tree --- */
+
+.toc-tree input + label + ul
+{
+ margin: 0 0 0 22px;
+}
+
+/* --- hidden sub tree --- */
+
+.toc-tree input ~ ul
+{
+ display: none;
+}
+
+/* --- visible sub tree --- */
+
+.toc-tree input:checked ~ ul
+{
+ display: block;
+}
+
+/* --- cursor --- */
+
+.toc-tree input,
+.toc-tree label,
+.toc-tree label::before
+{
+ cursor: pointer;
+}
+
+.toc-tree label.leaf,
+.toc-tree label.leaf::before
+{
+ cursor: default;
+}
+
+/* --- icons definition --- */
+
+.toc-tree label,
+.toc-tree label::before
+{
+ background: url("toc-icons.png") no-repeat;
+}
+
+/* --- document icon --- */
+
+.toc-tree label
+{
+ background-position: 18px 0;
+}
+
+/* --- plus / minus icon (for expandable nodes)--- */
+
+.toc-tree label::before
+{
+ content: "";
+ width: 16px;
+ margin: 0 22px 0 0;
+ vertical-align: middle;
+ background-position: 0 -32px;
+}
+
+.toc-tree input:checked + label::before
+{
+ background-position: 0 -16px;
+}
+
+/* --- empty icon (for leaf nodes) --- */
+
+.toc-tree label.leaf::before
+{
+ background-position: 0 -48px;
+}
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/01-create-new-example.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/01-create-new-example.png
new file mode 100644
index 0000000..91992a9
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/01-create-new-example.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/02-select-democar-example.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/02-select-democar-example.png
new file mode 100644
index 0000000..76f00bd
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/02-select-democar-example.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/03_democar-example-finish.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/03_democar-example-finish.png
new file mode 100644
index 0000000..b9c3ff2
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/03_democar-example-finish.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/2015-06-19_sphinx_validation_catalog.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/2015-06-19_sphinx_validation_catalog.png
new file mode 100644
index 0000000..eb2fa06
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/2015-06-19_sphinx_validation_catalog.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/amalthea_import_options.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/amalthea_import_options.png
new file mode 100644
index 0000000..e700b98
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/amalthea_import_options.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/amalthea_models.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/amalthea_models.png
new file mode 100644
index 0000000..e5ab5aa
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/amalthea_models.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/amalthea_models_actions.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/amalthea_models_actions.png
new file mode 100644
index 0000000..d7309b8
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/amalthea_models_actions.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/amalthea_system_model.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/amalthea_system_model.png
new file mode 100644
index 0000000..acbc861
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/amalthea_system_model.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/amalthea_trace_db_example.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/amalthea_trace_db_example.png
new file mode 100644
index 0000000..91625cf
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/amalthea_trace_db_example.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/app4mc-logo-g.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/app4mc-logo-g.png
new file mode 100644
index 0000000..2ab0953
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/app4mc-logo-g.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/app4mc_platform_features.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/app4mc_platform_features.png
new file mode 100644
index 0000000..1843d92
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/app4mc_platform_features.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/atdb_erm_model.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/atdb_erm_model.png
new file mode 100644
index 0000000..81e432f
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/atdb_erm_model.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/atdb_import_dialogue.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/atdb_import_dialogue.png
new file mode 100644
index 0000000..749df38
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/atdb_import_dialogue.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/atdb_import_result.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/atdb_import_result.png
new file mode 100644
index 0000000..60aa25e
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/atdb_import_result.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/cache_builder.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/cache_builder.png
new file mode 100644
index 0000000..f366ae9
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/cache_builder.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/converters_content.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/converters_content.png
new file mode 100644
index 0000000..11c2472
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/converters_content.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/converters_dependencies.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/converters_dependencies.png
new file mode 100644
index 0000000..862a844
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/converters_dependencies.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/converters_dependencies_details.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/converters_dependencies_details.png
new file mode 100644
index 0000000..f63db04
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/converters_dependencies_details.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/converters_extension_points.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/converters_extension_points.png
new file mode 100644
index 0000000..7cb03f4
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/converters_extension_points.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/different_model_versions.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/different_model_versions.png
new file mode 100644
index 0000000..3c7ee76
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/different_model_versions.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/example_hw_example_1_diagram.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/example_hw_example_1_diagram.png
new file mode 100644
index 0000000..9c9977f
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/example_hw_example_1_diagram.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/example_hw_example_1_editor.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/example_hw_example_1_editor.png
new file mode 100644
index 0000000..bfc401c
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/example_hw_example_1_editor.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/example_hw_example_2_diagram.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/example_hw_example_2_diagram.png
new file mode 100644
index 0000000..4614203
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/example_hw_example_2_diagram.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/example_hw_example_2_editor.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/example_hw_example_2_editor.png
new file mode 100644
index 0000000..1dfb19d
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/example_hw_example_2_editor.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/export_model.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/export_model.png
new file mode 100644
index 0000000..3976546
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/export_model.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/export_wizard1.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/export_wizard1.png
new file mode 100644
index 0000000..185b591
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/export_wizard1.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/export_wizard2.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/export_wizard2.png
new file mode 100644
index 0000000..0f9f61d
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/export_wizard2.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_access_path_example.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_access_path_example.png
new file mode 100644
index 0000000..7c22743
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_access_path_example.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_connection_handler_example.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_connection_handler_example.png
new file mode 100644
index 0000000..f2499ad
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_connection_handler_example.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_connection_handler_parallel_accesses_1.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_connection_handler_parallel_accesses_1.png
new file mode 100644
index 0000000..2a63535
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_connection_handler_parallel_accesses_1.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_connection_handler_parallel_accesses_3.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_connection_handler_parallel_accesses_3.png
new file mode 100644
index 0000000..d830917
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_connection_handler_parallel_accesses_3.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_domain_example.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_domain_example.png
new file mode 100644
index 0000000..a11ca32
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_domain_example.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_feature_example.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_feature_example.png
new file mode 100644
index 0000000..2f0c7d0
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_feature_example.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_memory_address_example.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_memory_address_example.png
new file mode 100644
index 0000000..133af30
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_memory_address_example.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_port_example.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_port_example.png
new file mode 100644
index 0000000..cfb465d
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_port_example.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_port_example_i_r.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_port_example_i_r.png
new file mode 100644
index 0000000..3d4e221
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_port_example_i_r.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_port_example_i_r_with_delegated_ports.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_port_example_i_r_with_delegated_ports.png
new file mode 100644
index 0000000..10693c8
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_port_example_i_r_with_delegated_ports.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_structure_example.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_structure_example.png
new file mode 100644
index 0000000..eb7483f
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/hw_structure_example.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/import_franca-core.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/import_franca-core.png
new file mode 100644
index 0000000..77c13c0
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/import_franca-core.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/linked_files_creation.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/linked_files_creation.png
new file mode 100644
index 0000000..5b5fffe
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/linked_files_creation.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/metric-viewer_open.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/metric-viewer_open.png
new file mode 100644
index 0000000..615e736
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/metric-viewer_open.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/metric-viewer_table.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/metric-viewer_table.png
new file mode 100644
index 0000000..1ca1da7
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/metric-viewer_table.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/migration_dialog.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/migration_dialog.png
new file mode 100644
index 0000000..84ce692
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/migration_dialog.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/migration_flow.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/migration_flow.png
new file mode 100644
index 0000000..12bd599
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/migration_flow.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model__activations.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model__activations.png
new file mode 100644
index 0000000..6a691e5
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model__activations.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model__stimuli.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model__stimuli.png
new file mode 100644
index 0000000..4766934
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model__stimuli.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_classifier.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_classifier.png
new file mode 100644
index 0000000..cb57fd7
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_classifier.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_custom_property.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_custom_property.png
new file mode 100644
index 0000000..91051f5
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_custom_property.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_custom_property_value.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_custom_property_value.png
new file mode 100644
index 0000000..a5180a9
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_custom_property_value.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_data_rate.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_data_rate.png
new file mode 100644
index 0000000..59af2ae
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_data_rate.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_data_size.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_data_size.png
new file mode 100644
index 0000000..e8153c0
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_data_size.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_beta.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_beta.png
new file mode 100644
index 0000000..7f2af29
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_beta.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_boundaries_1.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_boundaries_1.png
new file mode 100644
index 0000000..ef5a38b
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_boundaries_1.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_boundaries_2.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_boundaries_2.png
new file mode 100644
index 0000000..0a92465
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_boundaries_2.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_normal.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_normal.png
new file mode 100644
index 0000000..9e5b268
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_normal.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_time_histogram.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_time_histogram.png
new file mode 100644
index 0000000..612411e
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_time_histogram.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_uniform.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_uniform.png
new file mode 100644
index 0000000..117fc86
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_uniform.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_weibull.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_weibull.png
new file mode 100644
index 0000000..f5eb15d
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviation_weibull.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviations_abstract.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviations_abstract.png
new file mode 100644
index 0000000..a26d141
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviations_abstract.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviations_time.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviations_time.png
new file mode 100644
index 0000000..c3cdee6
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_deviations_time.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_elements.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_elements.png
new file mode 100644
index 0000000..1c265cb
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_elements.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_frequency.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_frequency.png
new file mode 100644
index 0000000..85478e2
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_frequency.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_interfaces_base_objects.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_interfaces_base_objects.png
new file mode 100644
index 0000000..b4d9a0c
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_interfaces_base_objects.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_statistic.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_statistic.png
new file mode 100644
index 0000000..f1d903d
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_statistic.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_tag.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_tag.png
new file mode 100644
index 0000000..e123e21
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_tag.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_ticks.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_ticks.png
new file mode 100644
index 0000000..703e294
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_ticks.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_time.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_time.png
new file mode 100644
index 0000000..82a467b
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_common_time.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components.png
new file mode 100644
index 0000000..e983ebc
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_common.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_common.png
new file mode 100644
index 0000000..e79768c
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_common.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_component_references.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_component_references.png
new file mode 100644
index 0000000..34f204e
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_component_references.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_example.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_example.png
new file mode 100644
index 0000000..d30776b
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_example.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_example_treeview.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_example_treeview.png
new file mode 100644
index 0000000..e3c12c8
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_example_treeview.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_franca_idl.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_franca_idl.png
new file mode 100644
index 0000000..1d0ab98
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_franca_idl.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_isystem.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_isystem.png
new file mode 100644
index 0000000..d9c93c2
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_components_isystem.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_config_overview.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_config_overview.png
new file mode 100644
index 0000000..46b6f74
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_config_overview.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_config_sample.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_config_sample.png
new file mode 100644
index 0000000..1ce4b7c
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_config_sample.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints.png
new file mode 100644
index 0000000..4e4c0bc
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_affinity.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_affinity.png
new file mode 100644
index 0000000..d9002cd
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_affinity.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_affinity_data.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_affinity_data.png
new file mode 100644
index 0000000..ca9a2af
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_affinity_data.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_affinity_process.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_affinity_process.png
new file mode 100644
index 0000000..8c2e80d
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_affinity_process.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_affinity_runnable.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_affinity_runnable.png
new file mode 100644
index 0000000..8aacebc
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_affinity_runnable.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_data_age.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_data_age.png
new file mode 100644
index 0000000..1ecd58e
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_data_age.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_data_coherency.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_data_coherency.png
new file mode 100644
index 0000000..3a352e6
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_data_coherency.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_data_stability.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_data_stability.png
new file mode 100644
index 0000000..23847b1
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_data_stability.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_delayconstraint_onetoone.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_delayconstraint_onetoone.png
new file mode 100644
index 0000000..3992534
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_delayconstraint_onetoone.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_delayconstraint_reaction.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_delayconstraint_reaction.png
new file mode 100644
index 0000000..8b67f57
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_delayconstraint_reaction.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_delayconstraint_uniquereaction.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_delayconstraint_uniquereaction.png
new file mode 100644
index 0000000..3142da6
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_delayconstraint_uniquereaction.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_eventchain.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_eventchain.png
new file mode 100644
index 0000000..5974cb8
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_eventchain.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_eventchain_eventgroups.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_eventchain_eventgroups.png
new file mode 100644
index 0000000..67a20ff
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_eventchain_eventgroups.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_eventchain_segments.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_eventchain_segments.png
new file mode 100644
index 0000000..527e560
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_eventchain_segments.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_activatetoactivate.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_activatetoactivate.png
new file mode 100644
index 0000000..c194869
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_activatetoactivate.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_endtoend.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_endtoend.png
new file mode 100644
index 0000000..cc88497
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_endtoend.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_endtostart.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_endtostart.png
new file mode 100644
index 0000000..4bead02
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_endtostart.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_grossexecutiontime.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_grossexecutiontime.png
new file mode 100644
index 0000000..1c20e4d
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_grossexecutiontime.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_lateness.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_lateness.png
new file mode 100644
index 0000000..8f11a33
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_lateness.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_netexecutiontime.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_netexecutiontime.png
new file mode 100644
index 0000000..13ec493
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_netexecutiontime.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_pollingtime.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_pollingtime.png
new file mode 100644
index 0000000..278cb34
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_pollingtime.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_readytime.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_readytime.png
new file mode 100644
index 0000000..6a55d94
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_readytime.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_responsetime.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_responsetime.png
new file mode 100644
index 0000000..348ca5d
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_responsetime.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_runningtime.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_runningtime.png
new file mode 100644
index 0000000..7a70aa3
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_runningtime.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_startdelay.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_startdelay.png
new file mode 100644
index 0000000..2372cf7
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_startdelay.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_starttostart.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_starttostart.png
new file mode 100644
index 0000000..1cbb588
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_starttostart.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_waitingtime.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_waitingtime.png
new file mode 100644
index 0000000..8421118
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_metric_waitingtime.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_requirements.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_requirements.png
new file mode 100644
index 0000000..a7b0b46
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_requirements.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_runnable_sequencing.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_runnable_sequencing.png
new file mode 100644
index 0000000..d2748e7
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_runnable_sequencing.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_runnable_sequencing_basic.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_runnable_sequencing_basic.png
new file mode 100644
index 0000000..b89929e
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_runnable_sequencing_basic.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_runnable_sequencing_scope.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_runnable_sequencing_scope.png
new file mode 100644
index 0000000..34b45e5
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_runnable_sequencing_scope.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_timing_delay.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_timing_delay.png
new file mode 100644
index 0000000..4eeb773
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_timing_delay.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_timing_latency.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_timing_latency.png
new file mode 100644
index 0000000..706b7df
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_timing_latency.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_timing_repetition.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_timing_repetition.png
new file mode 100644
index 0000000..1530e11
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_timing_repetition.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_timing_sync.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_timing_sync.png
new file mode 100644
index 0000000..fe30a21
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_constraints_timing_sync.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_custom_entity.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_custom_entity.png
new file mode 100644
index 0000000..676987f
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_custom_entity.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_dependencies.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_dependencies.png
new file mode 100644
index 0000000..1acb0e2
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_dependencies.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_events.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_events.png
new file mode 100644
index 0000000..1f38295
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_events.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_events_process.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_events_process.png
new file mode 100644
index 0000000..68c5c17
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_events_process.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_franca_editor_screenshot.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_franca_editor_screenshot.png
new file mode 100644
index 0000000..c3f5142
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_franca_editor_screenshot.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_hw_access.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_hw_access.png
new file mode 100644
index 0000000..191bf5e
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_hw_access.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_hw_definition.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_hw_definition.png
new file mode 100644
index 0000000..6aae69b
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_hw_definition.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_hw_main.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_hw_main.png
new file mode 100644
index 0000000..f5fa639
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_hw_main.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_hw_module.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_hw_module.png
new file mode 100644
index 0000000..21cb663
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_hw_module.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_mapping_allocation.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_mapping_allocation.png
new file mode 100644
index 0000000..b815926
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_mapping_allocation.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_mapping_overview.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_mapping_overview.png
new file mode 100644
index 0000000..eca0426
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_mapping_overview.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_measurement.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_measurement.png
new file mode 100644
index 0000000..de9f694
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_measurement.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_migration_sequence_diagram.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_migration_sequence_diagram.png
new file mode 100644
index 0000000..8e70c5b
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_migration_sequence_diagram.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_data_consistency.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_data_consistency.png
new file mode 100644
index 0000000..0b12151
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_data_consistency.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_operatingsystem.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_operatingsystem.png
new file mode 100644
index 0000000..6da70cf
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_operatingsystem.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_osoverhead.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_osoverhead.png
new file mode 100644
index 0000000..c425491
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_osoverhead.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_overview.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_overview.png
new file mode 100644
index 0000000..9a4d5d4
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_overview.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_scheduler.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_scheduler.png
new file mode 100644
index 0000000..03ec47a
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_scheduler.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_scheduler_association.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_scheduler_association.png
new file mode 100644
index 0000000..4fda6d9
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_scheduler_association.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_scheduling_parameters.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_scheduling_parameters.png
new file mode 100644
index 0000000..23dfbf7
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_scheduling_parameters.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_semaphore.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_semaphore.png
new file mode 100644
index 0000000..157a8a6
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_os_semaphore.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_propertyconstraints_example.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_propertyconstraints_example.png
new file mode 100644
index 0000000..17d3326
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_propertyconstraints_example.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_propertyconstraints_overview.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_propertyconstraints_overview.png
new file mode 100644
index 0000000..fc2d7b0
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_propertyconstraints_overview.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_section.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_section.png
new file mode 100644
index 0000000..089d0f4
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_section.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_section_memory.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_section_memory.png
new file mode 100644
index 0000000..67c5e63
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_section_memory.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli.png
new file mode 100644
index 0000000..b1b61ce
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_arrival_curve_1.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_arrival_curve_1.png
new file mode 100644
index 0000000..c061935
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_arrival_curve_1.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_arrival_curve_2.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_arrival_curve_2.png
new file mode 100644
index 0000000..db1623f
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_arrival_curve_2.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_arrival_curve_3.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_arrival_curve_3.png
new file mode 100644
index 0000000..2bf53d8
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_arrival_curve_3.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_arrival_curve_4.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_arrival_curve_4.png
new file mode 100644
index 0000000..dea302c
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_arrival_curve_4.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_arrival_curve_5.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_arrival_curve_5.png
new file mode 100644
index 0000000..d261985
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_arrival_curve_5.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_clocks.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_clocks.png
new file mode 100644
index 0000000..91fab42
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_clocks.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_modevaluelist.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_modevaluelist.png
new file mode 100644
index 0000000..796ab02
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_modevaluelist.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_periodic.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_periodic.png
new file mode 100644
index 0000000..991bcbc
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_periodic.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_periodic_burst.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_periodic_burst.png
new file mode 100644
index 0000000..99a729d
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_periodic_burst.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_periodic_jitter.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_periodic_jitter.png
new file mode 100644
index 0000000..a12446b
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_periodic_jitter.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_periodic_relative.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_periodic_relative.png
new file mode 100644
index 0000000..c450380
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_periodic_relative.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_single.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_single.png
new file mode 100644
index 0000000..ae34abf
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_single.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_stimuli.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_stimuli.png
new file mode 100644
index 0000000..9acf3d6
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_stimuli.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_synthetic.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_synthetic.png
new file mode 100644
index 0000000..d620739
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_synthetic.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_variablerate.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_variablerate.png
new file mode 100644
index 0000000..85059ae
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_stimuli_variablerate.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_activation.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_activation.png
new file mode 100644
index 0000000..dfd5176
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_activation.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_call_graph.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_call_graph.png
new file mode 100644
index 0000000..b614da6
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_call_graph.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_channel.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_channel.png
new file mode 100644
index 0000000..41b39c3
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_channel.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_data_dependency.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_data_dependency.png
new file mode 100644
index 0000000..a7fba3e
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_data_dependency.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_dataflow_overview.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_dataflow_overview.png
new file mode 100644
index 0000000..a698eb5
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_dataflow_overview.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_depends_on.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_depends_on.png
new file mode 100644
index 0000000..f0d9b08
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_depends_on.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_executionneed.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_executionneed.png
new file mode 100644
index 0000000..15c22fc
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_executionneed.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_hw_features_executionneed.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_hw_features_executionneed.png
new file mode 100644
index 0000000..51505bb
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_hw_features_executionneed.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_label.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_label.png
new file mode 100644
index 0000000..ce0cdd2
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_label.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_memory_inf.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_memory_inf.png
new file mode 100644
index 0000000..b651308
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_memory_inf.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_modecondition.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_modecondition.png
new file mode 100644
index 0000000..ee4a34c
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_modecondition.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_modes.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_modes.png
new file mode 100644
index 0000000..cb32ff5
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_modes.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_modeswitch.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_modeswitch.png
new file mode 100644
index 0000000..a8a0f89
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_modeswitch.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_osevents.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_osevents.png
new file mode 100644
index 0000000..a58700c
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_osevents.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_probabilityswitch.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_probabilityswitch.png
new file mode 100644
index 0000000..37128a3
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_probabilityswitch.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_process_chain.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_process_chain.png
new file mode 100644
index 0000000..ae5a13d
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_process_chain.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_process_prototype.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_process_prototype.png
new file mode 100644
index 0000000..1451132
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_process_prototype.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items_1_group.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items_1_group.png
new file mode 100644
index 0000000..553b06c
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items_1_group.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items_3_semaphores.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items_3_semaphores.png
new file mode 100644
index 0000000..94b18f4
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items_3_semaphores.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items_4_modes.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items_4_modes.png
new file mode 100644
index 0000000..5e93826
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items_4_modes.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items__calls.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items__calls.png
new file mode 100644
index 0000000..c77a418
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items__calls.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items__channel_access.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items__channel_access.png
new file mode 100644
index 0000000..4077969
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items__channel_access.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items__label_access.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items__label_access.png
new file mode 100644
index 0000000..297a5df
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items__label_access.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items__triggers.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items__triggers.png
new file mode 100644
index 0000000..ed211f6
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_items__triggers.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_overview.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_overview.png
new file mode 100644
index 0000000..a11e485
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnable_overview.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnablemodeswitch.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnablemodeswitch.png
new file mode 100644
index 0000000..2c8a39a
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnablemodeswitch.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnableprobabilityswitch.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnableprobabilityswitch.png
new file mode 100644
index 0000000..b972153
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_runnableprobabilityswitch.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_statistic.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_statistic.png
new file mode 100644
index 0000000..f3eecad
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_statistic.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_task_callgraph.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_task_callgraph.png
new file mode 100644
index 0000000..9ffbb62
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_task_callgraph.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_task_callgraph_structure.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_task_callgraph_structure.png
new file mode 100644
index 0000000..40d2880
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_task_callgraph_structure.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_task_isr.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_task_isr.png
new file mode 100644
index 0000000..1863198
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_task_isr.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_type_sample.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_type_sample.png
new file mode 100644
index 0000000..e74c9f0
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_type_sample.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_type_system.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_type_system.png
new file mode 100644
index 0000000..20f6268
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_sw_type_system.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_transient_backpointer_ui.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_transient_backpointer_ui.png
new file mode 100644
index 0000000..acff3c3
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/model_transient_backpointer_ui.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_gantt.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_gantt.png
new file mode 100644
index 0000000..2c12c92
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_gantt.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_hw.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_hw.png
new file mode 100644
index 0000000..6933cd6
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_hw.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_mapping.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_mapping.png
new file mode 100644
index 0000000..a092810
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_mapping.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_runnables.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_runnables.png
new file mode 100644
index 0000000..24ee93d
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_runnables.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_schedulers.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_schedulers.png
new file mode 100644
index 0000000..83191e3
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_schedulers.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_stimuli.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_stimuli.png
new file mode 100644
index 0000000..0d2885d
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_stimuli.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_tasks.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_tasks.png
new file mode 100644
index 0000000..7635b82
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_1_tasks.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_gantt.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_gantt.png
new file mode 100644
index 0000000..6fc1a21
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_gantt.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_hw.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_hw.png
new file mode 100644
index 0000000..cf63082
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_hw.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_mapping.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_mapping.png
new file mode 100644
index 0000000..55f6804
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_mapping.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_runnables.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_runnables.png
new file mode 100644
index 0000000..c0c41bd
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_runnables.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_scheduler.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_scheduler.png
new file mode 100644
index 0000000..14746a0
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_scheduler.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_stimuli.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_stimuli.png
new file mode 100644
index 0000000..5832a8c
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_stimuli.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_tasks.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_tasks.png
new file mode 100644
index 0000000..7490168
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_2_tasks.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server.png
new file mode 100644
index 0000000..503458e
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_1.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_1.png
new file mode 100644
index 0000000..9e4ce6f
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_1.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_2.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_2.png
new file mode 100644
index 0000000..a3d7905
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_2.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_3.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_3.png
new file mode 100644
index 0000000..8c38508
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_3.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_4.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_4.png
new file mode 100644
index 0000000..4fb2280
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_4.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_5.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_5.png
new file mode 100644
index 0000000..a7f6428
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_5.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_6.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_6.png
new file mode 100644
index 0000000..bd19e6e
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_6.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_7.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_7.png
new file mode 100644
index 0000000..627105b
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_7.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_8.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_8.png
new file mode 100644
index 0000000..a2df57a
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_8.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_9.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_9.png
new file mode 100644
index 0000000..31f9ae6
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_client_server_9.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop.png
new file mode 100644
index 0000000..4721e08
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_1.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_1.png
new file mode 100644
index 0000000..4139049
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_1.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_2.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_2.png
new file mode 100644
index 0000000..666c02a
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_2.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_3.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_3.png
new file mode 100644
index 0000000..9326936
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_3.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_4.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_4.png
new file mode 100644
index 0000000..f7ea88b
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_4.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_5.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_5.png
new file mode 100644
index 0000000..22643d4
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_5.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_6.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_6.png
new file mode 100644
index 0000000..e683a89
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_6.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_7.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_7.png
new file mode 100644
index 0000000..aa82a81
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_7.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_8.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_8.png
new file mode 100644
index 0000000..0712971
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_8.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_9.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_9.png
new file mode 100644
index 0000000..91521f7
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_feedback_loop_9.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_1.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_1.png
new file mode 100644
index 0000000..72608ea
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_1.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_2.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_2.png
new file mode 100644
index 0000000..74c1e23
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_2.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_3.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_3.png
new file mode 100644
index 0000000..a24aad7
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_3.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_4.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_4.png
new file mode 100644
index 0000000..ffc570e
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_4.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_5.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_5.png
new file mode 100644
index 0000000..b2e1ebe
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_5.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_6.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_6.png
new file mode 100644
index 0000000..1a5f4e5
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_6.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_7.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_7.png
new file mode 100644
index 0000000..25698ab
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_7.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_8.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_8.png
new file mode 100644
index 0000000..d966f2f
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_8.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_9.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_9.png
new file mode 100644
index 0000000..82ce9c8
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_periodic_9.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_scheduler_hierarchical.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_scheduler_hierarchical.png
new file mode 100644
index 0000000..9bb4ac4
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_scheduler_hierarchical.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_scheduler_legend.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_scheduler_legend.png
new file mode 100644
index 0000000..7ffc235
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_scheduler_legend.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_scheduler_partitioned_fpp.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_scheduler_partitioned_fpp.png
new file mode 100644
index 0000000..63cdccc
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_scheduler_partitioned_fpp.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine.png
new file mode 100644
index 0000000..74904a9
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_1.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_1.png
new file mode 100644
index 0000000..ed4b5dd
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_1.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_2.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_2.png
new file mode 100644
index 0000000..0906bab
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_2.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_3.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_3.png
new file mode 100644
index 0000000..8ce5db8
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_3.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_4.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_4.png
new file mode 100644
index 0000000..29b2f76
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_4.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_5.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_5.png
new file mode 100644
index 0000000..8e5ad38
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_5.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_6.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_6.png
new file mode 100644
index 0000000..5d29572
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_6.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_7.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_7.png
new file mode 100644
index 0000000..bd6e870
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_7.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_8.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_8.png
new file mode 100644
index 0000000..4391a9e
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_8.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_9.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_9.png
new file mode 100644
index 0000000..5e1ed59
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_9.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop.png
new file mode 100644
index 0000000..a5ada85
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_1.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_1.png
new file mode 100644
index 0000000..1769334
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_1.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_2.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_2.png
new file mode 100644
index 0000000..f606216
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_2.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_3.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_3.png
new file mode 100644
index 0000000..56c546e
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_3.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_4.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_4.png
new file mode 100644
index 0000000..ea6b139
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_4.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_5.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_5.png
new file mode 100644
index 0000000..2b981ac
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_5.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_6.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_6.png
new file mode 100644
index 0000000..12b72ea
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_6.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_7.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_7.png
new file mode 100644
index 0000000..cdc239a
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_7.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_8.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_8.png
new file mode 100644
index 0000000..be72a68
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_8.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_9.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_9.png
new file mode 100644
index 0000000..83c7506
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/modeling_example_state_machine_feedback_loop_9.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/models_selection.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/models_selection.png
new file mode 100644
index 0000000..c29306d
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/models_selection.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/osbuffering_migration_071_072.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/osbuffering_migration_071_072.png
new file mode 100644
index 0000000..30748da
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/osbuffering_migration_071_072.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/post_processor.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/post_processor.png
new file mode 100644
index 0000000..640027c
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/post_processor.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/pre_processor.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/pre_processor.png
new file mode 100644
index 0000000..8aece53
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/pre_processor.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/process_prototypes.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/process_prototypes.png
new file mode 100644
index 0000000..0c4cc50
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/process_prototypes.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sample_workflow.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sample_workflow.png
new file mode 100644
index 0000000..ab4532f
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sample_workflow.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/show_plugins_view.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/show_plugins_view.png
new file mode 100644
index 0000000..3338d52
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/show_plugins_view.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_convert_project.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_convert_project.png
new file mode 100644
index 0000000..48716aa
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_convert_project.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_event_chain_view_create.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_event_chain_view_create.png
new file mode 100644
index 0000000..fd07b05
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_event_chain_view_create.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_event_chain_view_show.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_event_chain_view_show.png
new file mode 100644
index 0000000..4fce0d5
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_event_chain_view_show.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_label_view_1.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_label_view_1.png
new file mode 100644
index 0000000..4d849b4
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_label_view_1.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_label_view_create.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_label_view_create.png
new file mode 100644
index 0000000..f129418
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_label_view_create.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_mapping_view_create.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_mapping_view_create.png
new file mode 100644
index 0000000..4062997
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_mapping_view_create.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_mapping_view_show.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_mapping_view_show.png
new file mode 100644
index 0000000..07155c5
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_mapping_view_show.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_1.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_1.png
new file mode 100644
index 0000000..b588f00
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_1.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_comm_layer_enable.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_comm_layer_enable.png
new file mode 100644
index 0000000..94310b4
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_comm_layer_enable.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_comm_layer_show1.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_comm_layer_show1.png
new file mode 100644
index 0000000..e52ca43
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_comm_layer_show1.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_create.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_create.png
new file mode 100644
index 0000000..667861d
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_create.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_label_layer_enable.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_label_layer_enable.png
new file mode 100644
index 0000000..f22acc2
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_label_layer_enable.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_label_layer_show.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_label_layer_show.png
new file mode 100644
index 0000000..3da698e
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_task_view_label_layer_show.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_tasks_view_create.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_tasks_view_create.png
new file mode 100644
index 0000000..7bb8685
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_tasks_view_create.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_tasks_view_show.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_tasks_view_show.png
new file mode 100644
index 0000000..ac07f88
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_tasks_view_show.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_viewpoints_selection.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_viewpoints_selection.png
new file mode 100644
index 0000000..72a07db
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sirius_viewpoints_selection.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sphinx_validation_results.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sphinx_validation_results.png
new file mode 100644
index 0000000..0f64078
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sphinx_validation_results.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sphinx_validation_selection.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sphinx_validation_selection.png
new file mode 100644
index 0000000..217dee3
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sphinx_validation_selection.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sphinx_validation_trigger_command.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sphinx_validation_trigger_command.png
new file mode 100644
index 0000000..8b4d247
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/sphinx_validation_trigger_command.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_add_schedule_points.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_add_schedule_points.png
new file mode 100644
index 0000000..4f4d318
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_add_schedule_points.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_add_schedule_points_mwe2.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_add_schedule_points_mwe2.png
new file mode 100644
index 0000000..c228fee
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_add_schedule_points_mwe2.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_context.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_context.png
new file mode 100644
index 0000000..dba18d7
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_context.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_create_tasks.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_create_tasks.png
new file mode 100644
index 0000000..a2301f4
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_create_tasks.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_default_context.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_default_context.png
new file mode 100644
index 0000000..3a1e596
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_default_context.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_model_reader.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_model_reader.png
new file mode 100644
index 0000000..d7cd911
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_model_reader.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_model_reader_mwe2.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_model_reader_mwe2.png
new file mode 100644
index 0000000..62e34cc
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_model_reader_mwe2.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_model_writer.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_model_writer.png
new file mode 100644
index 0000000..064f4d4
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_model_writer.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_model_writer_mwe2.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_model_writer_mwe2.png
new file mode 100644
index 0000000..7c29021
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_model_writer_mwe2.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_workflow_component.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_workflow_component.png
new file mode 100644
index 0000000..67c2a7e
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_workflow_component.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_workflow_component_mwe2.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_workflow_component_mwe2.png
new file mode 100644
index 0000000..ca9d2a9
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_workflow_component_mwe2.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_workflow_overview.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_workflow_overview.png
new file mode 100644
index 0000000..6cbc390
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_workflow_overview.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_workflow_overview_sequence.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_workflow_overview_sequence.png
new file mode 100644
index 0000000..f66c647
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/uml_workflow_overview_sequence.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user-scheduling-hierarchy.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user-scheduling-hierarchy.png
new file mode 100644
index 0000000..76e5f14
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user-scheduling-hierarchy.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user-scheduling-sched-allocation.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user-scheduling-sched-allocation.png
new file mode 100644
index 0000000..3671b92
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user-scheduling-sched-allocation.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user-scheduling-task-allocation.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user-scheduling-task-allocation.png
new file mode 100644
index 0000000..bd90cfe
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user-scheduling-task-allocation.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_channel.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_channel.png
new file mode 100644
index 0000000..19abba1
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_channel.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_channel_access.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_channel_access.png
new file mode 100644
index 0000000..7f9584e
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_channel_access.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_channel_example.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_channel_example.png
new file mode 100644
index 0000000..f60f93b
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_channel_example.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_channel_operations.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_channel_operations.png
new file mode 100644
index 0000000..4477d26
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_channel_operations.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_channel_transmission_example.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_channel_transmission_example.png
new file mode 100644
index 0000000..b36f337
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_channel_transmission_example.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_editor_with_central_model.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_editor_with_central_model.png
new file mode 100644
index 0000000..9b9e80f
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_editor_with_central_model.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_commands.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_commands.png
new file mode 100644
index 0000000..fae8c9d
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_commands.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_search_input.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_search_input.png
new file mode 100644
index 0000000..b242bc7
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_search_input.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_search_result1.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_search_result1.png
new file mode 100644
index 0000000..69e9e9a
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_search_result1.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_search_result2.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_search_result2.png
new file mode 100644
index 0000000..ec354e2
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_search_result2.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_showtypes.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_showtypes.png
new file mode 100644
index 0000000..537ee9c
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_showtypes.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_structure.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_structure.png
new file mode 100644
index 0000000..7f8c85a
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_editor_structure.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_step1_create-project.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_step1_create-project.png
new file mode 100644
index 0000000..7e346c1
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_step1_create-project.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_step2_create-folder.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_step2_create-folder.png
new file mode 100644
index 0000000..d0510c9
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_step2_create-folder.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_step3_create-model.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_step3_create-model.png
new file mode 100644
index 0000000..70ce78c
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_guide_step3_create-model.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_access_paths.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_access_paths.png
new file mode 100644
index 0000000..e779519
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_access_paths.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_definition_example.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_definition_example.png
new file mode 100644
index 0000000..380c6af
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_definition_example.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_feature_runnable_connection.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_feature_runnable_connection.png
new file mode 100644
index 0000000..dbadbdd
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_feature_runnable_connection.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_feature_runnable_example.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_feature_runnable_example.png
new file mode 100644
index 0000000..04be755
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_feature_runnable_example.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_latencies.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_latencies.png
new file mode 100644
index 0000000..d48fae9
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_latencies.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_model_class_diagram.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_model_class_diagram.png
new file mode 100644
index 0000000..e3408d3
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_hw_model_class_diagram.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_recipe_concept.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_recipe_concept.png
new file mode 100644
index 0000000..5bd243f
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_recipe_concept.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_section_amalthea.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_section_amalthea.png
new file mode 100644
index 0000000..b1b0928
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_section_amalthea.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_section_label_ref_to_memsection.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_section_label_ref_to_memsection.png
new file mode 100644
index 0000000..7523be4
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_section_label_ref_to_memsection.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_section_linker_memsection.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_section_linker_memsection.png
new file mode 100644
index 0000000..4412e7f
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_section_linker_memsection.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_section_virtual_to_physical.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_section_virtual_to_physical.png
new file mode 100644
index 0000000..e7f99f6
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_section_virtual_to_physical.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_data_dependency_view.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_data_dependency_view.png
new file mode 100644
index 0000000..56e53e5
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_data_dependency_view.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_new_runnable_item.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_new_runnable_item.png
new file mode 100644
index 0000000..662ad24
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_new_runnable_item.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_runtime_gantt.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_runtime_gantt.png
new file mode 100644
index 0000000..debbc85
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_runtime_gantt.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_runtime_gantt_runnable.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_runtime_gantt_runnable.png
new file mode 100644
index 0000000..0f6894a
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_runtime_gantt_runnable.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_runtime_gantt_semaphore.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_runtime_gantt_semaphore.png
new file mode 100644
index 0000000..fc34090
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_runtime_gantt_semaphore.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_runtime_gantt_signal.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_runtime_gantt_signal.png
new file mode 100644
index 0000000..a804489
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_runtime_gantt_signal.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_runtime_gantt_task.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_runtime_gantt_task.png
new file mode 100644
index 0000000..846b51c
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/user_sw_runtime_gantt_task.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/vm_arguments_configuration.png b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/vm_arguments_configuration.png
new file mode 100644
index 0000000..d31eab8
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/images/vm_arguments_configuration.png
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/index.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/index.html
new file mode 100644
index 0000000..d5d1e76
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/index.html
@@ -0,0 +1,13337 @@
+<!DOCTYPE html>
+
+<!--
+ ! Copyright (c) 2017-2019 Robert Bosch GmbH and others.
+ ! All rights reserved. This program and the accompanying materials
+ ! are made available under the terms of the Eclipse Public License 2.0
+ ! which accompanies this distribution, and is available at
+ ! https://www.eclipse.org/legal/epl-2.0/
+ -->
+
+<html lang="en">
+
+<head>
+ <meta charset="UTF-8">
+ <title>APP4MC 0.9.3 Documentation</title>
+ <link rel="stylesheet" href="css/help.css" type="text/css">
+ <link rel="stylesheet" href="css/frames.css" type="text/css">
+ <link rel="stylesheet" href="css/toc-style.css" type="text/css">
+</head>
+
+<body>
+
+ <div id="framecontent">
+ <div class="innertube">
+
+<!-- - - - - - - - - Table of contents - - - - - - - - -->
+<div class="toc-tree">
+<ul>
+<li><label class="leaf"><a href="#section1">Introduction to APP4MC</a></label></li>
+<li><input type="checkbox" id="toc2" /><label for="toc2"><a href="#section2">User Guide</a></label>
+<ul>
+<li><input type="checkbox" id="toc2.1" /><label for="toc2.1"><a href="#section2.1">Introduction</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.1.1">Steps to create a new AMALTHEA model</a></label></li>
+<li><input type="checkbox" id="toc2.1.2" /><label for="toc2.1.2"><a href="#section2.1.2">AMALTHEA Editor</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.1.2.1">Show types of model elements</a></label></li>
+<li><label class="leaf"><a href="#section2.1.2.2">Search for model elements</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section2.1.3">AMALTHEA Examples</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc2.2" /><label for="toc2.2"><a href="#section2.2">Concepts</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.2.1">Timing in Amalthea</a></label></li>
+<li><input type="checkbox" id="toc2.2.2" /><label for="toc2.2.2"><a href="#section2.2.2">Hardware</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.2.2.1">Structural Modeling of Heterogeneous Platforms</a></label></li>
+<li><label class="leaf"><a href="#section2.2.2.2">Recipe and Feature concept: An outlook of an upcoming approach</a></label></li>
+<li><label class="leaf"><a href="#section2.2.2.3">General Hardware Model Overview</a></label></li>
+<li><label class="leaf"><a href="#section2.2.2.4">Current implementation with features and the connection to the SW Model</a></label></li>
+<li><label class="leaf"><a href="#section2.2.2.5">Interpretation of latencies in the model</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc2.2.3" /><label for="toc2.2.3"><a href="#section2.2.3">Software (development)</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.2.3.1">Runnables</a></label></li>
+<li><label class="leaf"><a href="#section2.2.3.2">Process Prototypes</a></label></li>
+<li><label class="leaf"><a href="#section2.2.3.3">Constraints</a></label></li>
+<li><label class="leaf"><a href="#section2.2.3.4">Activations</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc2.2.4" /><label for="toc2.2.4"><a href="#section2.2.4">Software (runtime)</a></label>
+<ul>
+<li><input type="checkbox" id="toc2.2.4.1" /><label for="toc2.2.4.1"><a href="#section2.2.4.1">Processes (Tasks or ISRs)</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.2.4.1.1">Runnables</a></label></li>
+<li><label class="leaf"><a href="#section2.2.4.1.2">Labels</a></label></li>
+<li><label class="leaf"><a href="#section2.2.4.1.3">Semaphore</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section2.2.4.2">Stimulation</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc2.2.5" /><label for="toc2.2.5"><a href="#section2.2.5">General Concepts</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.2.5.1">Grouping of elements (Tags, Tag groups)</a></label></li>
+<li><label class="leaf"><a href="#section2.2.5.2">Custom Properties</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc2.2.6" /><label for="toc2.2.6"><a href="#section2.2.6">Scheduling</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.2.6.1">Scheduler to Core assignment</a></label></li>
+<li><label class="leaf"><a href="#section2.2.6.2">Task to Scheduler assignment</a></label></li>
+<li><label class="leaf"><a href="#section2.2.6.3">Scheduler hierarchies</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc2.2.7" /><label for="toc2.2.7"><a href="#section2.2.7">Communication via channels</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.2.7.1">Channel</a></label></li>
+<li><input type="checkbox" id="toc2.2.7.2" /><label for="toc2.2.7.2"><a href="#section2.2.7.2">Channel Access</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.2.7.2.1">Sending</a></label></li>
+<li><label class="leaf"><a href="#section2.2.7.2.2">Receiving</a></label></li>
+<li><label class="leaf"><a href="#section2.2.7.2.3">Common Read Policies: Last, New, and AllNew</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section2.2.7.3">Transmission Policy</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc2.2.8" /><label for="toc2.2.8"><a href="#section2.2.8">Data Dependencies</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.2.8.1">Overview</a></label></li>
+<li><label class="leaf"><a href="#section2.2.8.2">Internal Dataflow</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc2.2.9" /><label for="toc2.2.9"><a href="#section2.2.9">Memory Sections</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.2.9.1">Virtual Memory Section</a></label></li>
+<li><label class="leaf"><a href="#section2.2.9.2">Physical Memory Section</a></label></li>
+<li><label class="leaf"><a href="#section2.2.9.3">Modeling Memory Section information in AMALTHEA</a></label></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc2.3" /><label for="toc2.3"><a href="#section2.3">Examples</a></label>
+<ul>
+<li><input type="checkbox" id="toc2.3.1" /><label for="toc2.3.1"><a href="#section2.3.1">Modeling Example 1</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.3.1.1">General information</a></label></li>
+<li><label class="leaf"><a href="#section2.3.1.2">Hardware Model</a></label></li>
+<li><label class="leaf"><a href="#section2.3.1.3">Operating System Model</a></label></li>
+<li><input type="checkbox" id="toc2.3.1.4" /><label for="toc2.3.1.4"><a href="#section2.3.1.4">Mapping Model</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.3.1.4.1">Executable Allocation</a></label></li>
+<li><label class="leaf"><a href="#section2.3.1.4.2">Core Allocation</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc2.3.1.5" /><label for="toc2.3.1.5"><a href="#section2.3.1.5">Software Model</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.3.1.5.1">Tasks</a></label></li>
+<li><label class="leaf"><a href="#section2.3.1.5.2">Runnables</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section2.3.1.6">Stimuli Model</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc2.3.2" /><label for="toc2.3.2"><a href="#section2.3.2">Modeling Example 2</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.3.2.1">General information</a></label></li>
+<li><label class="leaf"><a href="#section2.3.2.2">Hardware Model</a></label></li>
+<li><label class="leaf"><a href="#section2.3.2.3">Operating System Model</a></label></li>
+<li><input type="checkbox" id="toc2.3.2.4" /><label for="toc2.3.2.4"><a href="#section2.3.2.4">Mapping Model</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.3.2.4.1">Executable Allocation</a></label></li>
+<li><label class="leaf"><a href="#section2.3.2.4.2">Core Allocation</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc2.3.2.5" /><label for="toc2.3.2.5"><a href="#section2.3.2.5">Software Model</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.3.2.5.1">Tasks</a></label></li>
+<li><label class="leaf"><a href="#section2.3.2.5.2">Runnables</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section2.3.2.6">Stimulation Model</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section2.3.3">Modeling Example "Purely Periodic without Communication"</a></label></li>
+<li><label class="leaf"><a href="#section2.3.4">Modeling Example "Client-Server without Reply"</a></label></li>
+<li><label class="leaf"><a href="#section2.3.5">Modeling Example "State Machine"</a></label></li>
+<li><label class="leaf"><a href="#section2.3.6">Modeling Example "Feedback Loop"</a></label></li>
+<li><label class="leaf"><a href="#section2.3.7">Modeling Example "State Machine Feedback Loop"</a></label></li>
+<li><input type="checkbox" id="toc2.3.8" /><label for="toc2.3.8"><a href="#section2.3.8">Modeling Examples "Scheduler"</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.3.8.1">Hierarchical Scheduler</a></label></li>
+<li><label class="leaf"><a href="#section2.3.8.2">Partitioned_FPP Scheduler</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc2.3.9" /><label for="toc2.3.9"><a href="#section2.3.9">Democar Example</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.3.9.1">Origin</a></label></li>
+<li><label class="leaf"><a href="#section2.3.9.2">Files</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section2.3.10">HwModel Example</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc2.4" /><label for="toc2.4"><a href="#section2.4">Tutorials</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.4.1">AMALTHEA Trace Database (ATDB) Import Example</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc2.5" /><label for="toc2.5"><a href="#section2.5">Editors / Viewers</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.5.1">AMALTHEA Trace Database Metrics Viewer</a></label></li>
+<li><input type="checkbox" id="toc2.5.2" /><label for="toc2.5.2"><a href="#section2.5.2">Sirius Viewer</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.5.2.1">Activate capabilities for project</a></label></li>
+<li><input type="checkbox" id="toc2.5.2.2" /><label for="toc2.5.2.2"><a href="#section2.5.2.2">Available Diagrams</a></label>
+<ul>
+<li><input type="checkbox" id="toc2.5.2.2.1" /><label for="toc2.5.2.2.1"><a href="#section2.5.2.2.1">Task View</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.5.2.2.1.1">Communication Layer</a></label></li>
+<li><label class="leaf"><a href="#section2.5.2.2.1.2">Label Layer</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section2.5.2.2.2">Label View</a></label></li>
+<li><label class="leaf"><a href="#section2.5.2.2.3">EventChain View</a></label></li>
+<li><label class="leaf"><a href="#section2.5.2.2.4">Tasks View</a></label></li>
+<li><label class="leaf"><a href="#section2.5.2.2.5">Mapping View</a></label></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc2.6" /><label for="toc2.6"><a href="#section2.6">Model Validation</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.6.1">Usage of Check-based Validation</a></label></li>
+<li><input type="checkbox" id="toc2.6.2" /><label for="toc2.6.2"><a href="#section2.6.2">Available Validations</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.6.2.1">Basic Check Validator</a></label></li>
+<li><label class="leaf"><a href="#section2.6.2.2">ConstraintsModel Check Validator</a></label></li>
+<li><label class="leaf"><a href="#section2.6.2.3">MappingModel Check Validator</a></label></li>
+<li><label class="leaf"><a href="#section2.6.2.4">EventModel Check Validator</a></label></li>
+<li><label class="leaf"><a href="#section2.6.2.5">HardwareModel Check Validator</a></label></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc2.7" /><label for="toc2.7"><a href="#section2.7">Model Migration</a></label>
+<ul>
+<li><input type="checkbox" id="toc2.7.1" /><label for="toc2.7.1"><a href="#section2.7.1">AMALTHEA Model Migration</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.7.1.1">Why model migration is required ?</a></label></li>
+<li><label class="leaf"><a href="#section2.7.1.2">AMALTHEA model migration</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section2.7.2">Supported versions for model Migration</a></label></li>
+<li><input type="checkbox" id="toc2.7.3" /><label for="toc2.7.3"><a href="#section2.7.3">Pre-requisites for AMALTHEA model migration</a></label>
+<ul>
+<li><label class="leaf"><a href="#section2.7.3.1">VM arguments</a></label></li>
+<li><label class="leaf"><a href="#section2.7.3.2">Linked files in eclipse project (virtual files)</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section2.7.4">How to invoke AMALTHEA model migration</a></label></li>
+<li><label class="leaf"><a href="#section2.7.5">Additional details</a></label></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc3" /><label for="toc3"><a href="#section3">Data Models</a></label>
+<ul>
+<li><input type="checkbox" id="toc3.1" /><label for="toc3.1"><a href="#section3.1">Model Overview</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.1.1">AMALTHEA System Model</a></label></li>
+<li><label class="leaf"><a href="#section3.1.2">AMALTHEA Trace Model</a></label></li>
+<li><label class="leaf"><a href="#section3.1.3">Structure of the model</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc3.2" /><label for="toc3.2"><a href="#section3.2">Model Basics</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.2.1">Custom Properties</a></label></li>
+<li><label class="leaf"><a href="#section3.2.2">Time (and Time Unit)</a></label></li>
+<li><label class="leaf"><a href="#section3.2.3">Frequency (and Frequency Unit)</a></label></li>
+<li><label class="leaf"><a href="#section3.2.4">Data Size (and Data Size Unit)</a></label></li>
+<li><label class="leaf"><a href="#section3.2.5">Data Rate (and Data Rate Unit)</a></label></li>
+<li><input type="checkbox" id="toc3.2.6" /><label for="toc3.2.6"><a href="#section3.2.6">Deviation</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.2.6.1">Boundaries</a></label></li>
+<li><label class="leaf"><a href="#section3.2.6.2">Uniform Distribution</a></label></li>
+<li><label class="leaf"><a href="#section3.2.6.3">Gaussian/Normal Distribution</a></label></li>
+<li><label class="leaf"><a href="#section3.2.6.4">Beta Distribution</a></label></li>
+<li><label class="leaf"><a href="#section3.2.6.5">Weibull Distribution</a></label></li>
+<li><label class="leaf"><a href="#section3.2.6.6">Histogram</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section3.2.7">Statistic Elements</a></label></li>
+<li><label class="leaf"><a href="#section3.2.8">Ticks</a></label></li>
+<li><label class="leaf"><a href="#section3.2.9">Counters</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc3.3" /><label for="toc3.3"><a href="#section3.3">Common Elements</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.3.1">Tags</a></label></li>
+<li><label class="leaf"><a href="#section3.3.2">Classifiers</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc3.4" /><label for="toc3.4"><a href="#section3.4">Components Model</a></label>
+<ul>
+<li><input type="checkbox" id="toc3.4.1" /><label for="toc3.4.1"><a href="#section3.4.1">Components Model Elements</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.4.1.1">Component</a></label></li>
+<li><label class="leaf"><a href="#section3.4.1.2">System and Composite</a></label></li>
+<li><label class="leaf"><a href="#section3.4.1.3">ComponentInstance and Connector</a></label></li>
+<li><label class="leaf"><a href="#section3.4.1.4">QualifiedPort</a></label></li>
+<li><label class="leaf"><a href="#section3.4.1.5">InterfacePort</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc3.4.2" /><label for="toc3.4.2"><a href="#section3.4.2">Example</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.4.2.1">Diagram</a></label></li>
+<li><label class="leaf"><a href="#section3.4.2.2">Model Editor</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section3.4.3">Franca IDL</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc3.5" /><label for="toc3.5"><a href="#section3.5">Configuration Model</a></label>
+<ul>
+<li><input type="checkbox" id="toc3.5.1" /><label for="toc3.5.1"><a href="#section3.5.1">Event Configuration</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.5.1.1">Sample</a></label></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc3.6" /><label for="toc3.6"><a href="#section3.6">Constraints Model</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.6.1">Requirements</a></label></li>
+<li><label class="leaf"><a href="#section3.6.2">Runnable Sequencing Constraints</a></label></li>
+<li><label class="leaf"><a href="#section3.6.3">Data Age Constraints</a></label></li>
+<li><label class="leaf"><a href="#section3.6.4">Data Coherency Groups</a></label></li>
+<li><label class="leaf"><a href="#section3.6.5">Data Stability Groups</a></label></li>
+<li><label class="leaf"><a href="#section3.6.6">Event Chains</a></label></li>
+<li><input type="checkbox" id="toc3.6.7" /><label for="toc3.6.7"><a href="#section3.6.7">Timing Constraints</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.6.7.1">Synchronization Constraints</a></label></li>
+<li><label class="leaf"><a href="#section3.6.7.2">Repetition Constraint</a></label></li>
+<li><label class="leaf"><a href="#section3.6.7.3">Delay Constraint</a></label></li>
+<li><label class="leaf"><a href="#section3.6.7.4">Event Chain Latency Constraint</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc3.6.8" /><label for="toc3.6.8"><a href="#section3.6.8">Affinity Constraints</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.6.8.1">Data Affinity Constraints</a></label></li>
+<li><label class="leaf"><a href="#section3.6.8.2">Process Affinity Constraints</a></label></li>
+<li><label class="leaf"><a href="#section3.6.8.3">Runnable Affinity Constraints</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section3.6.9">Physical Section Constraints</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section3.7">Event Model</a></label></li>
+<li><input type="checkbox" id="toc3.8" /><label for="toc3.8"><a href="#section3.8">Hardware Model</a></label>
+<ul>
+<li><input type="checkbox" id="toc3.8.1" /><label for="toc3.8.1"><a href="#section3.8.1">Class Diagrams</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.8.1.1">Hardware model elements</a></label></li>
+<li><label class="leaf"><a href="#section3.8.1.2">Hardware definitions and features</a></label></li>
+<li><label class="leaf"><a href="#section3.8.1.3">Hardware modules and access elements</a></label></li>
+<li><label class="leaf"><a href="#section3.8.1.4">Hardware paths and destinations</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc3.8.2" /><label for="toc3.8.2"><a href="#section3.8.2">Element description</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.8.2.1">HwModel</a></label></li>
+<li><input type="checkbox" id="toc3.8.2.2" /><label for="toc3.8.2.2"><a href="#section3.8.2.2">HwDefinition</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.8.2.2.1">ProcessingUnitDefinition</a></label></li>
+<li><label class="leaf"><a href="#section3.8.2.2.2">MemoryDefinition</a></label></li>
+<li><label class="leaf"><a href="#section3.8.2.2.3">CacheDefinition</a></label></li>
+<li><label class="leaf"><a href="#section3.8.2.2.4">ConnectionHandlerDefinition</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section3.8.2.3">HwStructure</a></label></li>
+<li><input type="checkbox" id="toc3.8.2.4" /><label for="toc3.8.2.4"><a href="#section3.8.2.4">HwDomain</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.8.2.4.1">FrequencyDomain</a></label></li>
+<li><label class="leaf"><a href="#section3.8.2.4.2">PowerDomain</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc3.8.2.5" /><label for="toc3.8.2.5"><a href="#section3.8.2.5">HwFeature</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.8.2.5.1">HwFeatureCategory</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc3.8.2.6" /><label for="toc3.8.2.6"><a href="#section3.8.2.6">HwModule</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.8.2.6.1">ProcessingUnit</a></label></li>
+<li><label class="leaf"><a href="#section3.8.2.6.2">Memory</a></label></li>
+<li><label class="leaf"><a href="#section3.8.2.6.3">Cache</a></label></li>
+<li><label class="leaf"><a href="#section3.8.2.6.4">ConnectionHandler</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section3.8.2.7">HwAccessElement</a></label></li>
+<li><label class="leaf"><a href="#section3.8.2.8">HwPort</a></label></li>
+<li><label class="leaf"><a href="#section3.8.2.9">HwConnection</a></label></li>
+<li><label class="leaf"><a href="#section3.8.2.10">HwAccessPath</a></label></li>
+<li><label class="leaf"><a href="#section3.8.2.11">Enumerations</a></label></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc3.9" /><label for="toc3.9"><a href="#section3.9">Mapping Model</a></label>
+<ul>
+<li><input type="checkbox" id="toc3.9.1" /><label for="toc3.9.1"><a href="#section3.9.1">Overview</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.9.1.1">MappingModel</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc3.9.2" /><label for="toc3.9.2"><a href="#section3.9.2">Allocations</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.9.2.1">SchedulerAllocation</a></label></li>
+<li><label class="leaf"><a href="#section3.9.2.2">RunnableAllocation</a></label></li>
+<li><label class="leaf"><a href="#section3.9.2.3">TaskAllocation</a></label></li>
+<li><label class="leaf"><a href="#section3.9.2.4">ISRAllocation</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc3.9.3" /><label for="toc3.9.3"><a href="#section3.9.3">Mappings</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.9.3.1">MemoryMapping</a></label></li>
+<li><label class="leaf"><a href="#section3.9.3.2">PhysicalSectionMapping</a></label></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section3.10">Measurement Model</a></label></li>
+<li><input type="checkbox" id="toc3.11" /><label for="toc3.11"><a href="#section3.11">OS Model</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.11.1">Operating System</a></label></li>
+<li><input type="checkbox" id="toc3.11.2" /><label for="toc3.11.2"><a href="#section3.11.2">Scheduler</a></label>
+<ul>
+<li><input type="checkbox" id="toc3.11.2.1" /><label for="toc3.11.2.1"><a href="#section3.11.2.1">Scheduling Algorithm</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.11.2.1.1">Further information</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section3.11.2.2">Scheduling Parameters</a></label></li>
+<li><label class="leaf"><a href="#section3.11.2.3">Scheduler Association</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc3.11.3" /><label for="toc3.11.3"><a href="#section3.11.3">Os Overhead</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.11.3.1">ISR Overhead</a></label></li>
+<li><label class="leaf"><a href="#section3.11.3.2">API Overhead</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section3.11.4">OS Data Consistency</a></label></li>
+<li><label class="leaf"><a href="#section3.11.5">Semaphore</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc3.12" /><label for="toc3.12"><a href="#section3.12">PropertyConstraints Model</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.12.1">Structure</a></label></li>
+<li><input type="checkbox" id="toc3.12.2" /><label for="toc3.12.2"><a href="#section3.12.2">CoreAllocationConstraint</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.12.2.1">RunnableAllocationConstraint</a></label></li>
+<li><label class="leaf"><a href="#section3.12.2.2">ProcessAllocationConstraint</a></label></li>
+<li><label class="leaf"><a href="#section3.12.2.3">ProcessPrototypeAllocationConstraint</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc3.12.3" /><label for="toc3.12.3"><a href="#section3.12.3">MemoryMappingConstraint</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.12.3.1">AbstractElementMappingConstraint</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section3.12.4">Classifications</a></label></li>
+<li><label class="leaf"><a href="#section3.12.5">Example</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc3.13" /><label for="toc3.13"><a href="#section3.13">Stimuli Model</a></label>
+<ul>
+<li><input type="checkbox" id="toc3.13.1" /><label for="toc3.13.1"><a href="#section3.13.1">Stimuli</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.13.1.1">Single</a></label></li>
+<li><label class="leaf"><a href="#section3.13.1.2">Arrival Curves</a></label></li>
+<li><label class="leaf"><a href="#section3.13.1.3">Common properties of fixed periodic stimuli</a></label></li>
+<li><label class="leaf"><a href="#section3.13.1.4">Periodic </a></label></li>
+<li><label class="leaf"><a href="#section3.13.1.5">PeriodicSynthetic</a></label></li>
+<li><label class="leaf"><a href="#section3.13.1.6">PeriodicBurst</a></label></li>
+<li><label class="leaf"><a href="#section3.13.1.7">RelativePeriodic </a></label></li>
+<li><label class="leaf"><a href="#section3.13.1.8">VariableRateStimulus</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section3.13.2">Clocks</a></label></li>
+<li><label class="leaf"><a href="#section3.13.3">Mode label lists</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc3.14" /><label for="toc3.14"><a href="#section3.14">Software Model</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.14.1">Memory Information</a></label></li>
+<li><label class="leaf"><a href="#section3.14.2">Labels</a></label></li>
+<li><label class="leaf"><a href="#section3.14.3">Channels</a></label></li>
+<li><input type="checkbox" id="toc3.14.4" /><label for="toc3.14.4"><a href="#section3.14.4">Data Types</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.14.4.1">General Information</a></label></li>
+<li><label class="leaf"><a href="#section3.14.4.2">Sample</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section3.14.5">Activations</a></label></li>
+<li><label class="leaf"><a href="#section3.14.6">Runnables and Services</a></label></li>
+<li><label class="leaf"><a href="#section3.14.7">Runnables</a></label></li>
+<li><input type="checkbox" id="toc3.14.8" /><label for="toc3.14.8"><a href="#section3.14.8">Runnable Items</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.14.8.1">Groups</a></label></li>
+<li><label class="leaf"><a href="#section3.14.8.2">Calls and AUTOSAR communication</a></label></li>
+<li><label class="leaf"><a href="#section3.14.8.3">Label Access</a></label></li>
+<li><label class="leaf"><a href="#section3.14.8.4">Channel Access</a></label></li>
+<li><label class="leaf"><a href="#section3.14.8.5">Semaphore Access</a></label></li>
+<li><label class="leaf"><a href="#section3.14.8.6">Mode Label Access</a></label></li>
+<li><label class="leaf"><a href="#section3.14.8.7">Custom Event Trigger</a></label></li>
+<li><label class="leaf"><a href="#section3.14.8.8">Runnable Mode Switch</a></label></li>
+<li><label class="leaf"><a href="#section3.14.8.9">Runnable Probability Switch</a></label></li>
+<li><label class="leaf"><a href="#section3.14.8.10">Ticks</a></label></li>
+<li><label class="leaf"><a href="#section3.14.8.11">Execution Need</a></label></li>
+<li><label class="leaf"><a href="#section3.14.8.12">Statistical Values</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section3.14.9">Tasks / ISR</a></label></li>
+<li><input type="checkbox" id="toc3.14.10" /><label for="toc3.14.10"><a href="#section3.14.10">The Call Graph</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.14.10.1">Mode Switch</a></label></li>
+<li><label class="leaf"><a href="#section3.14.10.2">Probability Switch</a></label></li>
+<li><label class="leaf"><a href="#section3.14.10.3">Call Sequence</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc3.14.11" /><label for="toc3.14.11"><a href="#section3.14.11">Call Sequence Content</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.14.11.1">Task Runnable Call</a></label></li>
+<li><label class="leaf"><a href="#section3.14.11.2">Enforced Migration</a></label></li>
+<li><label class="leaf"><a href="#section3.14.11.3">Inter Process Trigger</a></label></li>
+<li><label class="leaf"><a href="#section3.14.11.4">Schedule Point</a></label></li>
+<li><label class="leaf"><a href="#section3.14.11.5">Terminate Process</a></label></li>
+<li><label class="leaf"><a href="#section3.14.11.6">Wait/Clear/Set Event</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc3.14.12" /><label for="toc3.14.12"><a href="#section3.14.12">Modes</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.14.12.1">Modes and Mode Labels</a></label></li>
+<li><label class="leaf"><a href="#section3.14.12.2">Mode Changes</a></label></li>
+<li><label class="leaf"><a href="#section3.14.12.3">Mode Conditions</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section3.14.13">Process Prototypes</a></label></li>
+<li><label class="leaf"><a href="#section3.14.14">Process Chains</a></label></li>
+<li><label class="leaf"><a href="#section3.14.15">Custom Entities</a></label></li>
+<li><label class="leaf"><a href="#section3.14.16">Section</a></label></li>
+<li><input type="checkbox" id="toc3.14.17" /><label for="toc3.14.17"><a href="#section3.14.17">Data Dependencies and Runnable Parameters</a></label>
+<ul>
+<li><label class="leaf"><a href="#section3.14.17.1">Overview</a></label></li>
+<li><label class="leaf"><a href="#section3.14.17.2">Elements with data dependency</a></label></li>
+<li><label class="leaf"><a href="#section3.14.17.3">Data Dependency</a></label></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc4" /><label for="toc4"><a href="#section4">Developer Guide</a></label>
+<ul>
+<li><input type="checkbox" id="toc4.1" /><label for="toc4.1"><a href="#section4.1">Overview of Features and Plug-ins</a></label>
+<ul>
+<li><label class="leaf"><a href="#section4.1.1">Features</a></label></li>
+<li><label class="leaf"><a href="#section4.1.2">Plug-ins</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc4.2" /><label for="toc4.2"><a href="#section4.2">Model Validation</a></label>
+<ul>
+<li><label class="leaf"><a href="#section4.2.1">Understanding Check Catalogs</a></label></li>
+<li><label class="leaf"><a href="#section4.2.2">Adding own Validations</a></label></li>
+<li><input type="checkbox" id="toc4.2.3" /><label for="toc4.2.3"><a href="#section4.2.3">Plugin dependencies</a></label>
+<ul>
+<li><label class="leaf"><a href="#section4.2.3.1">Implementation</a></label></li>
+<li><label class="leaf"><a href="#section4.2.3.2">Plugin configuration</a></label></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc4.3" /><label for="toc4.3"><a href="#section4.3">Model Workflow</a></label>
+<ul>
+<li><label class="leaf"><a href="#section4.3.1">Introduction</a></label></li>
+<li><label class="leaf"><a href="#section4.3.2">General Structure</a></label></li>
+<li><input type="checkbox" id="toc4.3.3" /><label for="toc4.3.3"><a href="#section4.3.3">Available Basic Components</a></label>
+<ul>
+<li><label class="leaf"><a href="#section4.3.3.1">Model Reader</a></label></li>
+<li><label class="leaf"><a href="#section4.3.3.2">Model Writer</a></label></li>
+<li><label class="leaf"><a href="#section4.3.3.3">Add Schedule Points</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc4.3.4" /><label for="toc4.3.4"><a href="#section4.3.4">Other Components</a></label>
+<ul>
+<li><label class="leaf"><a href="#section4.3.4.1">Create Tasks</a></label></li>
+<li><label class="leaf"><a href="#section4.3.4.2">Generate Mapping</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc4.3.5" /><label for="toc4.3.5"><a href="#section4.3.5">EASE modules</a></label>
+<ul>
+<li><label class="leaf"><a href="#section4.3.5.1">Workflow Module</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc4.3.6" /><label for="toc4.3.6"><a href="#section4.3.6">MWE2 Workflow</a></label>
+<ul>
+<li><input type="checkbox" id="toc4.3.6.1" /><label for="toc4.3.6.1"><a href="#section4.3.6.1">MWE2 Components</a></label>
+<ul>
+<li><label class="leaf"><a href="#section4.3.6.1.1">Reader</a></label></li>
+<li><label class="leaf"><a href="#section4.3.6.1.2">Writer</a></label></li>
+<li><label class="leaf"><a href="#section4.3.6.1.3">Add Schedule Points</a></label></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section4.3.7">Current Limitations / Open Points</a></label></li>
+<li><label class="leaf"><a href="#section4.3.8">Overall Sample</a></label></li>
+<li><label class="leaf"><a href="#section4.3.9">Adding a new workflow component</a></label></li>
+<li><input type="checkbox" id="toc4.3.10" /><label for="toc4.3.10"><a href="#section4.3.10">Create project</a></label>
+<ul>
+<li><label class="leaf"><a href="#section4.3.10.1">Execute the new component in the available sample</a></label></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc4.4" /><label for="toc4.4"><a href="#section4.4">Model Migration</a></label>
+<ul>
+<li><label class="leaf"><a href="#section4.4.1">Technologies used</a></label></li>
+<li><label class="leaf"><a href="#section4.4.2">Framework for model migration</a></label></li>
+<li><input type="checkbox" id="toc4.4.3" /><label for="toc4.4.3"><a href="#section4.4.3">Components of Model Migration Framework</a></label>
+<ul>
+<li><label class="leaf"><a href="#section4.4.3.1">Model migration sequence</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section4.4.4">How to add custom Model Migration components</a></label></li>
+<li><input type="checkbox" id="toc4.4.5" /><label for="toc4.4.5"><a href="#section4.4.5">AMALTHEA meta model changes</a></label>
+<ul>
+<li><label class="leaf"><a href="#section4.4.5.1">Version APP4MC 0.7.0 to App4MC 0.7.1</a></label></li>
+<li><label class="leaf"><a href="#section4.4.5.2">Version APP4MC 0.7.1 to APP4MC 0.7.2</a></label></li>
+<li><label class="leaf"><a href="#section4.4.5.3">Version APP4MC 0.7.2 to APP4MC 0.8.0</a></label></li>
+<li><label class="leaf"><a href="#section4.4.5.4">Version APP4MC 0.8.0 to APP4MC 0.8.1</a></label></li>
+<li><label class="leaf"><a href="#section4.4.5.5">Version APP4MC 0.8.1 to APP4MC 0.8.2</a></label></li>
+<li><label class="leaf"><a href="#section4.4.5.6">Version APP4MC 0.8.2 to APP4MC 0.8.3</a></label></li>
+<li><label class="leaf"><a href="#section4.4.5.7">Version APP4MC 0.8.3 to APP4MC 0.9.0</a></label></li>
+<li><label class="leaf"><a href="#section4.4.5.8">Version APP4MC 0.9.0 to APP4MC 0.9.1</a></label></li>
+<li><label class="leaf"><a href="#section4.4.5.9">Version APP4MC 0.9.1 to APP4MC 0.9.2</a></label></li>
+<li><label class="leaf"><a href="#section4.4.5.10">Version APP4MC 0.9.2 to APP4MC 0.9.3</a></label></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section4.5">Model Utilities</a></label></li>
+<li><input type="checkbox" id="toc4.6" /><label for="toc4.6"><a href="#section4.6">Model Details</a></label>
+<ul>
+<li><label class="leaf"><a href="#section4.6.1">Unique ID generation</a></label></li>
+<li><label class="leaf"><a href="#section4.6.2">Interfaces and base objects</a></label></li>
+<li><label class="leaf"><a href="#section4.6.3">Derived references</a></label></li>
+<li><input type="checkbox" id="toc4.6.4" /><label for="toc4.6.4"><a href="#section4.6.4">Transient back pointers</a></label>
+<ul>
+<li><label class="leaf"><a href="#section4.6.4.1">Container references</a></label></li>
+<li><label class="leaf"><a href="#section4.6.4.2">References (via inverse index)</a></label></li>
+<li><label class="leaf"><a href="#section4.6.4.3">Implementation</a></label></li>
+<li><label class="leaf"><a href="#section4.6.4.4">User Interface</a></label></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc4.7" /><label for="toc4.7"><a href="#section4.7">AMALTHEA Model Definition</a></label>
+<ul>
+<li><label class="leaf"><a href="#section4.7.1">Ecore</a></label></li>
+<li><label class="leaf"><a href="#section4.7.2">XML Schema Definition (XSD)</a></label></li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc4.8" /><label for="toc4.8"><a href="#section4.8">AMALTHEA Trace Database</a></label>
+<ul>
+<li><label class="leaf"><a href="#section4.8.1">General information</a></label></li>
+<li><input type="checkbox" id="toc4.8.2" /><label for="toc4.8.2"><a href="#section4.8.2">Database structure</a></label>
+<ul>
+<li><label class="leaf"><a href="#section4.8.2.1">MetaInformation</a></label></li>
+<li><label class="leaf"><a href="#section4.8.2.2">Entity</a></label></li>
+<li><label class="leaf"><a href="#section4.8.2.3">EntityType</a></label></li>
+<li><label class="leaf"><a href="#section4.8.2.4">EventType</a></label></li>
+<li><label class="leaf"><a href="#section4.8.2.5">EntitySource</a></label></li>
+<li><label class="leaf"><a href="#section4.8.2.6">EntityInstance</a></label></li>
+<li><label class="leaf"><a href="#section4.8.2.7">EventTables</a></label></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li><input type="checkbox" id="toc5" /><label for="toc5"><a href="#section5">Release Notes</a></label>
+<ul>
+<li><label class="leaf"><a href="#section5.1">Eclipse APP4MC 0.9.3 (Jan 2019)</a></label></li>
+<li><label class="leaf"><a href="#section5.2">Eclipse APP4MC 0.9.2 (Oct 2018)</a></label></li>
+<li><label class="leaf"><a href="#section5.3">Eclipse APP4MC 0.9.1 (Jul 2018)</a></label></li>
+<li><label class="leaf"><a href="#section5.4">Eclipse APP4MC 0.9.0 (Apr 2018)</a></label></li>
+<li><label class="leaf"><a href="#section5.5">Eclipse APP4MC 0.8.3 (Jan 2018)</a></label></li>
+<li><label class="leaf"><a href="#section5.6">Eclipse APP4MC 0.8.2 (Oct 2017)</a></label></li>
+<li><label class="leaf"><a href="#section5.7">Eclipse APP4MC 0.8.1 (Jul 2017)</a></label></li>
+<li><label class="leaf"><a href="#section5.8">Eclipse APP4MC 0.8.0 (Apr 2017)</a></label></li>
+<li><label class="leaf"><a href="#section5.9">Eclipse APP4MC 0.7.2 (Jan 2017)</a></label></li>
+<li><label class="leaf"><a href="#section5.10">Eclipse APP4MC 0.7.1 (Oct 2016)</a></label></li>
+<li><label class="leaf"><a href="#section5.11">Eclipse APP4MC 0.7.0 (Jul 2016)</a></label></li>
+<li><label class="leaf"><a href="#section5.12">AMALTHEA 1.1.1 (Oct 2015)</a></label></li>
+<li><label class="leaf"><a href="#section5.13">AMALTHEA 1.1.0 (Aug 2015)</a></label></li>
+</ul>
+</li>
+<li><label class="leaf"><a href="#section6">Roadmap</a></label></li>
+</ul>
+</div>
+<!-- - - - - - - - - Table of contents - - - - - - - - -->
+
+ </div>
+ </div>
+
+ <div id="maincontent">
+ <div class="innertube">
+
+<!-- - - - - - - - - - - Articles - - - - - - - - - - -->
+<article>
+<h1><a id="section1">1 </a>Introduction to APP4MC</h1>
+ <p>
+ <img src="images/app4mc-logo-g.png"/>
+ </p>
+ <p>The goal of the project is the development of a consistent, open, expandable tool platform for embedded software engineering. It is based on the model driven approach as basic engineering methodology. The main focus is the optimization of embedded multi-core systems.</p>
+ <p>Most functions in a modern car are controlled by embedded systems. Also more and more driver assistance functions are introduced. This implies a continuous increase of computing power accompanied by the request for reduction of energy and costs. To handle these requirements the multi-core technology permeates the control units in cars. This is today one of the biggest challenges for automotive systems. Existing applications can not realize immediate benefit from these multi-core ECUs because they are not designed to run on such architectures. In addition applications and systems have to be migrated into AUTOSAR compatible architectures. Both trends imply the necessity for new development environments which cater for these requirements.</p>
+ <p>The tool platform shall be capable to support all aspects of the development cycle. This addresses predominantly the automotive domain but is also applicable to telecommunication by extensions which deal with such systems in their native environment and integrated in a car.</p>
+ <p>Future extensions will add support for visualization tools, graphical editors. But not only design aspects will be supported but also verification and validation of the systems will be taken into account and support tools for optimal multi-core real-time scheduling and validation of timing requirements will be provided. In the course of this project not all of the above aspects will be addressed in the same depth. Some will be defined and some will be implemented on a prototype basis. But the basis platform and the overall architecture will be finalized as much as possible.</p>
+ <p>The result of the project is an open tool platform in different aspects. On the one hand it is published under the Eclipse Public License (EPL) and on the other hand it is open to be integrated with existing or new tools either on a company individual basis or with commercially available tools.</p>
+</article>
+
+
+<article>
+<h1><a id="section2">2 </a>User Guide</h1>
+
+
+<h2><a id="section2.1">2.1 </a>Introduction</h2>
+ <p>APP4MC comes with a predefined perspective available in the Eclipse menu under Window -&gt; Open Perspective -&gt; Other -&gt; APP4MC. This perspective consists of the following elements:</p>
+ <ul>
+ <li>AMALTHEA Model Explorer</li>
+ <li>Editor
+ <ul>
+ <li>Tree Editor showing the structure of the model content</li>
+ <li>Standard Properties Tab is used to work on elements attributes</li>
+ </ul>
+ </li>
+ </ul>
+ <p>The following screenshot is showing this perspective and its contained elements.</p>
+ <p>
+ <img src="images/user_guide_editor_structure.png"/>
+ </p>
+
+
+<h3><a id="section2.1.1">2.1.1 </a>Steps to create a new AMALTHEA model</h3>
+ <p>APP4MC provides a standard wizard to create a new AMALTHEA model from scratch.</p>
+ <p>
+ <strong>Step 1: Create a new general project</strong>
+ </p>
+ <blockquote>
+ <p>The scope of an AMALTHEA model is defined by its enclosing container (project or folder).
+ <br> Therefore a project is required.
+ </p>
+ <p>
+ <img src="images/user_guide_step1_create-project.png"/>
+ </p>
+ </blockquote>
+ <p>
+ <strong>Step 2: Create a new folder inside of the created project</strong>
+ </p>
+ <blockquote>
+ <p>It is recommended to create a folder (
+ <i>although a project is also a possible container</i> ).
+ </p>
+ <p>
+ <img src="images/user_guide_step2_create-folder.png"/>
+ </p>
+ </blockquote>
+ <p>
+ <strong>Step 3: Create a new AMALTHEA model</strong>
+ </p>
+ <blockquote>
+ <p>In the context menu (right mouse button) an entry for a new AMALTHEA model can be found.</p>
+ <p>
+ <img src="images/user_guide_step3_create-model.png"/>
+ </p>
+ <p> Another starting point is
+ <i>File</i> -&gt;
+ <i>New</i> -&gt;
+ <i>Other</i>
+ </p>
+ <p> In the dialog you can select the parent folder and the file name.</p>
+ </blockquote>
+
+
+<h3><a id="section2.1.2">2.1.2 </a>AMALTHEA Editor</h3>
+ <p>The AMALTHEA Editor shows either the entire model that contains sub models or one of the sub models.
+ <br>The next screenshot shows the "New Child" menu with all its possibilities.
+ </p>
+ <p>
+ <img class="gray" src="images/user_editor_with_central_model.png"/>
+ </p>
+ <p>In addition the AMALTHEA Editor has two commands available at the top right of the Editor.</p>
+ <p>
+ <img class="gray" src="images/user_guide_editor_commands.png"/>
+ </p>
+
+
+<h4><a id="section2.1.2.1"></a>Show types of model elements</h4>
+ <p>The Show types of elements button triggers the editor to show the direct type of the element in the tree editor using [element_type]. The following screenshot shows the toggle and the types marked with an underline.</p>
+ <p>
+ <img class="gray" src="images/user_guide_editor_showtypes.png"/>
+ </p>
+
+
+<h4><a id="section2.1.2.2"></a>Search for model elements</h4>
+ <p>The editor provides the possibility to filter model elements by using the available name attribute. For example this can be used to find all elements in the model with "ABS" at the beginning of their name. The search and result view is using the Eclipse search as result view.</p>
+ <p>
+ <img class="gray" src="images/user_guide_editor_search_input.png"/>
+ </p>
+ <p>The search result is using the Eclipse Search View.</p>
+ <p>
+ <img class="gray" src="images/user_guide_editor_search_result1.png"/>
+ </p>
+ <p>An additional option is to toggle the search results to show them as a plain list instead of a tree grouped by type.</p>
+ <p>
+ <img class="gray" src="images/user_guide_editor_search_result2.png"/>
+ </p>
+
+
+<h3><a id="section2.1.3">2.1.3 </a>AMALTHEA Examples</h3>
+ <p>The AMALTHEA tool platform comes with several examples. This section will describe how a new project based on these examples can be created. </p>
+ <p>
+ <strong>Step 1</strong>
+ </p>
+ <blockquote>
+ <p>Click the "new" icon in the top left corner and select "Example..." or use the right mouse button.</p>
+ <p>
+ <img src="images/01-create-new-example.png"/>
+ </p>
+ </blockquote>
+ <p>
+ <strong>Step 2</strong>
+ </p>
+ <blockquote>
+ <p>The "New Example" wizard will pop up and shows several examples.
+ <br> Select one examples and hit continue.
+ </p>
+ <p>
+ <img src="images/02-select-democar-example.png"/>
+ </p>
+ </blockquote>
+ <p>
+ <strong>Step 3</strong>
+ </p>
+ <blockquote>
+ <p>You will see a summary of the example projects that will be created.
+ <br> Click "Finish" to exit this dialog.
+ </p>
+ <p>
+ <img src="images/03_democar-example-finish.png"/>
+ </p>
+ <p> You can now open the editor to inspect the models.</p>
+ </blockquote>
+
+
+<h2><a id="section2.2">2.2 </a>Concepts</h2>
+
+
+<h3><a id="section2.2.1">2.2.1 </a>Timing in Amalthea</h3>
+ <p>An Amalthea model per se is a static, structural model of a HW/SW system. The basic structural model consists of software model elements (tasks, runnables), hardware model elements (processing units, connection handlers), stimuli that are used to activate execution, and mappings of software model elements to hardware model elements. Semantics of the model elements then allows for definite and clear interpretation of the static, structural model regarding its behavior over time. Basically, the
+ <em>initial state</em> of the static system model is used as a starting point, and a series of
+ <em>state changes</em> is subject to model analysis. The
+ <em>state</em> of a model mainly consist of states of HW elements (processing units and connection handlers). During analysis, a state change is then, for example, a processing unit changing from
+ <em>idle</em> to
+ <em>execute</em>.
+ </p>
+ <p>When we are interested in the
+ <em>timing</em> of a model, a common way is using
+ <strong>discrete event simulation</strong>. In discrete event simulation, a series of events changes the state of the system and a simulated clock. Such a simulation event is, for instance, a "stimulus event" for a task to execute on a processing unit, what in turn may change the state of this processing unit from
+ <em>idle</em> to
+ <em>execute</em>.
+ </p>
+ <p>Note that every event occurs at a specified point in simulated time; for instance, think of a new
+ <em>stimulus event</em> that shall activate a task in 10ms from the current value of the simulated clock. Unprocessed (future) events are stored in an event list. The simulator then continuously processes the event occurring next to the current simulated time, and forwards the simulated clock correspondingly, thereby removing the event from the event list. Note that this is a very simplified description. For instance, multiple events at the same point in simulated time are possible. Processing events may lead to generation of new events. For instance, processing a end task execution event may lead to a new stimulus event that shall occur 5ms from the current value of the simulation clock added to the event list.
+ </p>
+ <p>After sketching the basic idea of discrete event simulation, we can be more precise with the term
+ <strong>timing</strong>: we call the trace of state changes and events over time the
+ <em>dynamic behavior</em> or simply the
+ <em>timing</em> of the model. This timing of the model than may be further analyzed, for instance, regarding timing constraints.
+ </p>
+ <p>Stimulation of task execution with corresponding stimuli events, and scheduling in general, is not further discussed here. In the following, we focus on timing of execution at processing units. The basic mechanism to specify execution time at a processing unit is the modeling element
+ <strong>ticks</strong>. Ticks are a generic abstraction of time. Regarding hardware one may think of ticks as clock ticks or cycles of the processor. You can specify ticks at several places in the model, most prominently as a runnable item of a runnable. The ticks value together with a mapping to a specific processing unit that has a defined frequency then allows computation of an execution time. For instance, 100 ticks require 62.5ns simulated time at a processing unit with 1.6GHz, while 100 ticks require 41.6ns at a processing unit with 2.4GHz.
+ </p>
+ <p>In general, the runnable items of a runnable are specified as a directed, acyclic graph (DAG). Processing this DAG from perspective of a discrete event simulator then defines the timing of executing the runnable at a specific processing unit. Amalthea allows for many different types of runnable items that can be categorized as: items that branch paths of the DAG (runnable mode switch, runnable probability switch); items that signal other parts of the model (custom event trigger, runnable call, etc.); items that specify data access (channel receive/send, label access); and items that translate in execution time (ticks, execution needs). When the discrete event simulator simulates execution of a runnable at a processing unit, it actually processes runnable items and translates their semantics into simulation events. We already discussed the runnable item ticks: when ticks are processed, a corresponding simulation time value is computed based on the executing processing unit's frequency, and a simulation event is stored in the list of simulation events for when the execution will finish. While ticks denote a fixed (static) timing, data accesses may result in series of simulation events, depending on access paths and mapping of data to memory. The timing of data accesses then depends on parameters such as delay and state of hardware structure elements such as connection handlers.</p>
+ <p>Note that the current version of Amalthea (0.9.3) also prepares an additional concept for specification of execution timing besides using ticks:
+ <strong>execution needs</strong>. Execution needs will allow sophisticated ways of execution time specification, as required for heterogeneous systems: Execution needs define the number of usages of user-defined needs; a later version of Amalthea (&gt; 0.9.3) then will introduce recipes that translate such execution needs into ticks, taking hardware features of the executing processing unit into account. Note that, by definition, a sound model for timing simulation always allows to compute ticks from execution needs. Consequently, for timing analysis using discrete event simulation as described above, we first translate execution needs into ticks, resulting in a model we call ticks-only model. Thus, execution needs can be ignored for timing analysis.
+ </p>
+
+
+<h3><a id="section2.2.2">2.2.2 </a>Hardware</h3>
+
+
+<h4><a id="section2.2.2.1"></a>Structural Modeling of Heterogeneous Platforms</h4>
+ <p>To master the rising demands of performance and power efficiency, hardware becomes more and more diverse with a wide spectrum of different cores and hardware accelerators. On the computation front, there is an emergence of specialized processing units that are designed to boost a specific kind of algorithm, like a cryptographic algorithm, or a specific math operation like "multiply and accumulate". As one result, the benefit of a given function from hardware units specialized in different kinds may lead to nonlinear effects between processing units in terms of execution performance of the algorithm: while one function may be processed twice as fast when changing the processing unit, another function may have no benefit at all from the same change. Furthermore the memory hierarchy in modern embedded microprocessor architectures becomes more complex due to multiple levels of caches, cache coherency support, and the extended use of DRAM. In addition to crossbars, modern SoCs connect different clusters of potentially different hardware components via a Network on Chip. Additionally, power and frequency scaling is supported by state of the art SoCs. All these characteristics of modern and performant SoCs (specialized processing units, complex memory hierarchy, network like interconnects and power and frequency scaling) were only partially supported by the former Amalthea hardware model. Therefore, to create models of modern heterogeneous systems, new concepts of representing hardware components in a flexible and easy way are necessary: Our approach supports modeling of manifold hierarchical structures and also domains for power and frequencies. Furthermore, explicit cache modules are available and the possibilities for modeling the whole memory subsystem are extended, the connection between hardware components can be modeled over different abstraction layers. Only with such an extended modeling approach, a more accurate estimation of the system performance of state of the art SoCs becomes feasible.</p>
+ <p>Our intention is allowing to create a hardware model once at the beginning of a development process. Ideally, the hardware model will be provided by the vendor. All performance relevant attributes regarding the different features of hardware components like a floating point unit or how hardware components are interconnected should be explicitly represented in the model. The main challenge for a hardware/software performance model is then to determine certain costs, e.g. the net execution time of a software functionality mapped to a processing unit. Costs such as execution time, in contrast to the hardware structure, may change during development time – either because the implementation details evolve from initial guess to real-world measurements, the implementation is changed, or the tooling is changed. Therefore, the inherent attributes of the hardware, e.g. latency of an access path, should be decoupled from the mapping or implementation dependent costs of executing functions. We know from experience that it is necessary to refine these costs constantly in the development process to increase accuracy of performance estimation. Refinement denotes incorporation of increasing knowledge about the system. Therefore, such a refinement should be possible in an efficient way and also support re-use of the hardware model. The corresponding concepts are detailed in the following section.</p>
+
+
+<h4><a id="section2.2.2.2"></a>Recipe and Feature concept: An outlook of an upcoming approach</h4>
+ <p>
+ <em>Disclaimer: Please note that the following describes work in progress – what we call "recipes" later is not yet part of the meta-model, and the concept of "features" is not final.</em>
+ </p>
+ <p>The main driver of the concept described here is separation of implementation dependent details from structural or somehow "solid" information about a hardware/software system. This follows the separation of concerns paradigm, mainly to reduce refinement effort, and foster model re-use: As knowledge about a system grows during development, e.g. by implementing or optimizing functionality as software, the system model should be updated and refined efficiently, while inherent details shall be kept constant and not modified depending on the implementation.</p>
+ <p>An example should clarify this approach: For timing simulation, we require the net execution time of a software function executed on the processing unit it is mapped onto. This cost of the execution depends on the implementation of the algorithm, for instance, as C++ code, and the tool chain producing the binary code that eventually is executed. In that sense, the
+ <strong>execution needs</strong> of the algorithm (for instance, a certain number of "multiply and accumulate" operations for a matrix operation) are naturally fixed, as well as the
+ <strong>features</strong> provided by the processing unit (for instance, a dedicated MAC unit requiring one tick for one operation, and a generic integer unit requiring 0.5 ticks per operation). However is implementation- and tool-chain-dependent how the actual execution needs of the algorithm are served by the execution units. Without changing the algorithm or the hardware, optimization of the implementation may make better use of the hardware, resulting in reduced execution time. The above naturally draws the lines for our modeling approach: Execution needs (on an algorithmic level) are inherent, as well as features of the hardware. Keeping these information constant in the model is the key for re-use; implementation dependent change of costs, such as lower execution time by an optimized implementation in C++ or better compiler options, change during development and are modeled as
+ <strong>recipe</strong>. A "recipe" thus takes execution needs of software and features of the hardware as input and results in costs, such as the net execution time. Consequently, recipes are the main area of model refinement during development. The concept is illustrated below.
+ </p>
+ <p>
+ <img class="scale" src="images/user_recipe_concept.png"/>
+ </p>
+ <p>Note that flexibility is part of the design of this approach. Execution needs and features are not limited to a given set, and recipes can be almost arbitrary prescripts of computation. This allows to introduce new execution needs when required to favorable detail an algorithm. For instance, the execution need "convolution-VGG16" can be introduced to model a specific need for a deep learning algorithm. The feature "MAC" of the executing processing unit provides costs in ticks corresponding to perform a MAC operation. The recipe valid for the mapping then uses these two attributes to compute the net execution time of "convolution-VGG16" in ticks, for instance, by multiplying the costs of xyz MAC operations with a penalty factor of 0.8. Note that with this approach execution needs may be translated very differently into costs, using different features.</p>
+ <p>To further motivate this approach, we give some more benefits and examples of beneficial use of the model:</p>
+ <ul>
+ <li>Given execution needs of a software function that directly correspond the features of processing units, the optimal execution time may be computed (peak performance).</li>
+ <li>While net execution time is the prime example of execution needs, features, and recipes, the concept is not limited to "net execution time recipes", recipes for other performance numbers such as power consumption are possible.</li>
+ <li>Recipes can be attached at different "levels" in the model: At a processing unit and at a mapping. If present, the recipe at mapping level has precedence.</li>
+ </ul>
+
+
+<h4><a id="section2.2.2.3"></a>General Hardware Model Overview</h4>
+ <p>The design of the new hardware model is focusing on flexibility and variety to cover different kind of designs to cope with future extensions, and also to support different levels of abstraction. To reduce the complexity of the meta model for representing modern hardware architectures, as less elements as possible are introduced. For example, dependent of the abstraction level, a component called
+ <em>ConnectionHandler</em> can express different kind of connection elements, e.g. a crossbar within a SoC or a CAN bus within an E/E-architecture. A simplified overview of the meta model to specify hardware as a model is shown below. The components
+ <em>ConnectionHandler, ProcessingUnit, Memory</em> and
+ <em>Cache</em> are referred in the following as basic components.
+ </p>
+ <p>
+ <img class="scale" src="images/user_hw_model_class_diagram.png"/>
+ <br>Class diagram of the hardware model
+ </p>
+ <p>The root element of a hardware model is always the
+ <em>HwModel</em> class that contains all domains (power and frequency), definitions, and hardware features of the different component definitions. The hierarchy within the model is represented by the
+ <em>HwStructure</em> class, with the ability to contain further
+ <em>HwStructure</em> elements. Therewith arbitrary levels of hierarchy could be expressed. Red and blue classes in the figure are the definitions and the main components of a system like a memory or a core.
+ </p>
+ <p>The next figure shows the modeling of a processor. The
+ <em>ProcessingUnitDefiniton</em>, which is created once, specifies a processing unit with general information (which can be a CPU, GPU, DSP or any kind of hardware accelerator). Using a definition that may be re-used supports quick modeling for multiple homogeneous components within a heterogeneous architecture.
+ <em>ProcessingUnits</em> then represent the physical instances in the hardware model, referencing the
+ <em>ProcessingUnitDefiniton</em> for generic information, supplemented only with instance specific information like the
+ <em>FrequencyDomain</em>.
+ </p>
+ <p>
+ <img class="scale" src="images/user_hw_definition_example.png"/>
+ <br>Link between definitions and module instances (physical components)
+ </p>
+ <p>Yellow represents the power and frequency domains that are always created at the top level of the hardware model. It is possible to model different frequency or voltage values, e.g., when it is possible to set a systems into a power safe mode. All components that reference the domain are then supplied with the corresponding value of the domain.</p>
+ <p>All the green elements in the figure are related to communication (together with the blue base component
+ <em>ConnectionHandler</em>). Green modeling elements represent ports, static connections, and the access elements for the
+ <em>ProcessingUnits</em>. These
+ <em>ProcessingUnits</em> are the master modules in the hardware model. The following example shows two
+ <em>ProcessingUnits</em> that are connected via a
+ <em>ConnectionHandler</em> to a
+ <em>Memory</em>. There are two different possibilities to specify the access paths for
+ <em>ProcessingUnits</em> like it is shown for ProcessingUnit_2 in the next figure. Every time a
+ <em>HwAccessElement</em> is necessary to assign the destination e.g. a
+ <em>Memory</em> component. This
+ <em>HwAccessElement</em> can contain a latency or a data rate dependent on the use case. The second possibility is to create a
+ <em>HwAccessPath</em> within the
+ <em>HwAccessElement</em> which describes the detailed path to the destination by referencing all the
+ <em>HwConnections</em> and
+ <em>ConnectionHandlers</em>. It is even possible to reference a cache component within the
+ <em>HwAccessPath</em> to express if the access is cached or non-cached. Furthermore it is possible to set addresses for these
+ <em>HwAccessPath</em> to represent the whole address space of a
+ <em>ProcessingUnit</em>. A typical approach would be starting with just latency or data rates for the communication between components and enhance the model over time to by switching to the
+ <em>HwAccessPaths</em>.
+ </p>
+ <p>
+ <img class="scale" src="images/user_hw_access_paths.png"/>
+ <br>Access elements in the hardware model
+ </p>
+
+
+<h4><a id="section2.2.2.4"></a>Current implementation with features and the connection to the SW Model</h4>
+ <p>In the previous chapter the long time goal of the feature and recipe concept is explained. As an intermediate step before introducing the recipes we decided to connect the HwModel and SwModel by referencing to the name of the hardware
+ <em>FeatureCategories</em> from the
+ <em>ExecutionNeed</em> element in a Runnable. The following figure shows this connection between the grey Runnable item block and the white Features block. Due to the mapping (Task or Runnable to ProcessingUnit) the corresponding feature value can be extracted out of the ProcessingUnitDefinition.
+ </p>
+ <p>
+ <img class="scale" src="images/user_hw_feature_runnable_connection.png"/>
+ </p>
+ <p>An example based on the old hardware model is the "instruction per cycle" value (IPC). To model an IPC with the new approach a
+ <em>HwFeatureCategory</em> is created with the name
+ <em>Instructions</em>. Inside this category multiple IPC values can be created for different
+ <em>ProcessingUnitDefinitions</em>.
+ </p>
+ <p>
+ <em>Note: In version 0.9.0 to 0.9.2 exists a default ExecutionNeed Instructions together with a the HwFeatre IPC the cycles can be calculated by dividing the Instructions by the IPC value.</em>
+ </p>
+ <p>
+ <img class="scale" src="images/user_hw_feature_runnable_example.png"/>
+ <br>Execution needs example
+ </p>
+
+
+<h4><a id="section2.2.2.5"></a>Interpretation of latencies in the model</h4>
+ <p>In the model read and write access latencies are used. An alternative which is usually used in specifications or by measurements are request and response latencies. The following figure shows a typical communication between two components. The interpretation of a read and write latency for example at
+ <em>ConnectionHandlers</em> is the following:
+ </p>
+ <p>
+ <img class="scale" src="images/user_hw_latencies.png"/>
+ </p>
+ <ul>
+ <li>
+ <strong>readLatency</strong> = requestLatency + response Latency
+ </li>
+ </ul>
+ <ul>
+ <li>
+ <strong>writeLatency</strong> = requestLatency
+ </li>
+ </ul>
+ <p>The access latency of a
+ <em>Memory</em> component is always added to the read or write latency from the communication elements, independent if its one latency from an
+ <em>HwAccessElement</em> or multiple latencies from a
+ <em>HwAccessPath</em>.
+ </p>
+ <p>As example in case of using only read and write latencies:</p>
+ <ul>
+ <li>
+ <strong>totalReadLatency</strong> = readLatency (HwAccessElement) + accessLatency (Memory)
+ </li>
+ </ul>
+ <ul>
+ <li>
+ <strong>totalWriteLatency</strong> = writeLatency (HwAccessElement) + accessLatency (Memory)
+ </li>
+ </ul>
+ <p>An example in case of using an access element with a hardware access path:</p>
+ <p>
+ <em>n = Number of path elements</em>
+ </p>
+ <ul>
+ <li>
+ <strong>totalReadLatency</strong> = Sum 1..n ( readLatency(p) ) + accessLatency (Memory)
+ </li>
+ </ul>
+ <ul>
+ <li>
+ <strong>totalWriteLatency</strong> = Sum 1..n ( writeLatency(p) ) + accessLatency (Memory)
+ </li>
+ </ul>
+ <p>PathElements could be
+ <em>Caches</em>,
+ <em>ConnectionHandlers</em> and
+ <em>HwConnections</em>. In very special cases also a
+ <em>ProcessingUnit</em> can be a
+ <em>PathElement</em> the
+ <em>ProcessingUnit</em> has no direct effect on the latency. In case the user want to express a latency it has to be annotated as
+ <em>HwFeature</em>.
+ </p>
+
+
+<h3><a id="section2.2.3">2.2.3 </a>Software (development)</h3>
+ <p>The AMALTHEA System Model can also be used in early phases of the development process when only limited information about the resulting software is available.</p>
+
+
+<h4><a id="section2.2.3.1"></a>Runnables</h4>
+ <p>The
+ <i>Runnable</i> element is the basic software unit that defines the behavior of the software in terms of runtime and communication. It can be described on different levels of abstraction:
+ </p>
+ <ol>
+ <li>timing only (activation and runtime)</li>
+ <li>including communication (in general)</li>
+ <li>adding detailed call sequences</li>
+ </ol>
+ <p>To allow a more detailed simulation a description can also include statistical values like deviations or probabilities. This requires additional information that is typically derived from an already implemented function. The modeling of observed behavior is described in more detail in chapter
+ <a href="#user-sw-runtime">Software (runtime)</a>.
+ </p>
+
+
+<h4><a id="section2.2.3.2"></a>Process Prototypes</h4>
+ <p>Process Prototypes are used to define the basic data of a task. This is another possibility to describe that a set of Runnables has a similar characteristic (e.g. they have the same periodic activation).
+ <br>A prototype can then be processed and checked by different algorithms. Finally a partitioning algorithm generates (one or more) tasks that are the runtime equivalents of the prototype.
+ </p>
+ <p>
+ <img src="images/process_prototypes.png"/>
+ </p>
+ <p>This processing can be guided by specifications that are provided by the function developers:</p>
+ <ul>
+ <li>The
+ <strong>Order Specification</strong> is a predefined execution order that has to be guaranteed.
+ </li>
+ <li>An
+ <strong>Access Specification</strong> defines exceptions from the standard write-before-read semantics.
+ </li>
+ </ul>
+
+
+<h4><a id="section2.2.3.3"></a>Constraints</h4>
+ <p>In addition the partitioning and mapping can be restricted by
+ <i>Affinity Constraints</i> that enforce the pairing or separation of software elements and by
+ <i>Property Constraints</i> that connect hardware capabilities and the corresponding software requirements.
+ <br>The
+ <i>Timing Constraints</i> will typically be used to check if the resulting system fulfills all the requirements.
+ </p>
+
+
+<h4><a id="section2.2.3.4"></a>Activations</h4>
+ <p>Activations are used to specify the intended activation behavior of
+ <i>Runnables</i> and
+ <i>ProcessPrototypes</i>. Typically they are defined before the creation of tasks (and the runnable to task mappings). So this is a way to cluster runnables and to document when the runnables should be executed.
+ </p>
+ <p>
+ <img src="images/model__activations.png"/>
+ </p>
+ <p>The following activation patterns can be distinguished:</p>
+ <ul>
+ <li>Single: single activation</li>
+ <li>Periodic: periodic activation with a specific frequency</li>
+ <li>Sporadic: recurring activation without following a specific pattern</li>
+ <li>Event: activation triggered by a
+ <i>TriggerEvent</i>
+ </li>
+ <li>Custom: custom activation (free textual description)</li>
+ </ul>
+ <p>To describe a specific (observed) behavior at runtime there are
+ <i>Stimuli</i> in the AMALTHEA model. They can be created based on the information of the specified activations.
+ </p>
+
+
+<h3 id="user-sw-runtime"><a id="section2.2.4">2.2.4 </a>Software (runtime)</h3>
+ <p>During runtime, the dynamic behavior of the software can be observed. The following Gantt chart shows an excerpt of such a dynamic behavior.</p>
+ <p>
+ <img src="images/user_sw_runtime_gantt.png" style="width: 1000px"/>
+ </p>
+ <p>To model the observed behavior in the AMALTHEA model there are schedulable units (Processes) that contain the basic software units (Runnables) and stimuli that describe when the processes are executed. Statistical elements like distributions (Gauss, Weibull, ...) are also available in the model. They allow describing the variation of values if there are multiple occurrences. </p>
+ <p>In the following sections, a high level description of the individual elements of a software description that define the dynamic behavior are presented.</p>
+
+
+<h4><a id="section2.2.4.1"></a>Processes (Tasks or ISRs)</h4>
+ <p>
+ <img src="images/user_sw_runtime_gantt_task.png" style="width: 1000px"/>
+ </p>
+ <p>Processes represent executable units that are managed by an operating system scheduler. A process is thus the smallest schedulable unit managed by the operating system. Each process also has its own name space and resources (including memory) protected against use from other processes. In general, two different kinds of processes can be distinguished: task and Interrupt Service Routine (ISR). Latter is a software routine called in case of an interrupt. ISRs have normally higher priority than tasks and can only be suspended by another ISR which presents a higher priority than the one running. In the Gantt chart above, a task called 'TASK_InputProcessing' can be seen. All elements that run within the context of a process are described in the following sections.</p>
+
+
+<h5><a id="section2.2.4.1.1"></a>Runnables</h5>
+ <p>
+ <img src="images/user_sw_runtime_gantt_runnable.png" style="width: 1000px"/>
+ </p>
+ <p>Runnables are basic software units. In general it can be said that a Runnable is comparable to a function. It runs within the context of a process and is described by a sequence of instructions. Those instructions can again represent different actions that define the dynamic behavior of the software. Following, such possible actions are listed:</p>
+ <ul>
+ <li>Semaphore Access: request/release of a semaphore</li>
+ <li>Label Access: reading/writing a data signal</li>
+ <li>Ticks: number of ticks (cycles) to be executed</li>
+ <li>...</li>
+ </ul>
+ <p>
+ <img src="images/user_sw_new_runnable_item.png"/>
+ </p>
+ <p>In the following sections elements, that can be of concern within a runnable, are described in more detail.</p>
+
+
+<h5><a id="section2.2.4.1.2"></a>Labels</h5>
+ <p>
+ <img src="images/user_sw_runtime_gantt_signal.png" style="width: 1000px"/>
+ </p>
+ <p>Labels represent the system's view of data exchange. As a consequence, labels are used to represent communication in a flattened structure, with (at least) one label defined for each data element sent or received by a Runnable instance.</p>
+
+
+<h5><a id="section2.2.4.1.3"></a>Semaphore</h5>
+ <p>
+ <img src="images/user_sw_runtime_gantt_semaphore.png" style="width: 1000px"/>
+ </p>
+ <p>The main functionality of a semaphore is to control simultaneous use of a single resource by several entities, e.g. scheduling of requests, multiple access protection.</p>
+
+
+<h4><a id="section2.2.4.2"></a>Stimulation</h4>
+ <p>Before, we described the dynamic behavior of a specific process instance. In general however, a process is not only activated once but many times. The action of activating a process is called stimulation. The following stimulation patterns are typically used for specification:</p>
+ <ul>
+ <li>Single: single activation of a process</li>
+ <li>Periodic: periodic activation of a process with a specific frequency</li>
+ <li>VariableRate: periodic activations based on other events, like rotation speed</li>
+ <li>Event: activation triggered by a
+ <i>TriggerEvent</i>
+ </li>
+ <li>InterProcess: activations based on an explicit inter-process trigger</li>
+ </ul>
+ <p>
+ <img src="images/model__stimuli.png"/>
+ </p>
+
+
+<h3><a id="section2.2.5">2.2.5 </a>General Concepts</h3>
+
+
+<h4><a id="section2.2.5.1"></a>Grouping of elements (Tags, Tag groups)</h4>
+ <p>It is possible to use
+ <a href="#common-tags">Tags</a> for grouping elements of the model.
+ </p>
+
+
+<h4><a id="section2.2.5.2"></a>Custom Properties</h4>
+ <p>The AMALTHEA model provides
+ <a href="#basics-custom-props">Custom Properties</a> to enhance the model in a generic way. These can be used for different kind of purpose:
+ </p>
+ <ul>
+ <li>Store attributes, which are relevant for your model, but not yet available at the elements</li>
+ <li>Processing information of algorithms can be stored in that way, e.g. to mark an element as already processed</li>
+ </ul>
+
+
+<h3><a id="section2.2.6">2.2.6 </a>Scheduling</h3>
+
+
+<h4><a id="section2.2.6.1"></a>Scheduler to Core assignment</h4>
+ <p>We distinguish between physical mapping and responsibility </p>
+ <ul>
+ <li>
+ <strong>Executing Core</strong> means a scheduler produces algorithmic overhead on a core
+ </li>
+ <li>
+ <strong>Responsibility</strong> means a scheduler controls the scheduling on core(s)
+ </li>
+ </ul>
+ <p>
+ <img src="images/user-scheduling-sched-allocation.png"/>
+ </p>
+
+
+<h4><a id="section2.2.6.2"></a>Task to Scheduler assignment</h4>
+ <p>Tasks have a core affinity and are assigned to a scheduler</p>
+ <ul>
+ <li>
+ <strong>Core Affinity</strong> Specifies the possible cores the task can run on. If only one core is specified, the task runs on this core. If multiple cores are specified, the task can migrate between the cores.
+ </li>
+ <li>
+ <strong>Scheduler</strong> specifies the unique allocation of the task to a scheduler.
+ </li>
+ </ul>
+ <p>The scheduling parameters are determined by the scheduling algorithm and are only valid for a specific task – scheduler combination. Therefore the parameters are specified in the TaskAllocation object.</p>
+ <p>
+ <img src="images/user-scheduling-task-allocation.png"/>
+ </p>
+
+
+<h4><a id="section2.2.6.3"></a>Scheduler hierarchies</h4>
+ <p>Schedulers can be arranged in a hierarchy. If set, the parent scheduler takes the initial decision and delegates to a child-scheduler. If the child-scheduler is not a grouping of tasks, it can take scheduling decisions if permission is granted by the parent.
+ <br>The scheduling parameters are determined by the scheduling algorithm of the parent scheduler. Therefore the relevant parameters in the hierarchical context are specified in the (intermediate) SchedulerAssociation object.
+ </p>
+ <p>
+ <img src="images/user-scheduling-hierarchy.png"/>
+ </p>
+
+
+<h3><a id="section2.2.7">2.2.7 </a>Communication via channels</h3>
+
+
+<h4><a id="section2.2.7.1"></a>Channel</h4>
+ <p>Sender and receiver communicating via a channel by issuing send and receive operations on ports; read policy and transmission policy define communication details.</p>
+ <p>
+ <img src="images/user_channel.png"/>
+ </p>
+ <p>As basic thinking model, reading and writing to channels happens during runnable execution in distinct phases:</p>
+ <ul>
+ <li>Receiving phase: The specified receive operations are performed for every read port.</li>
+ <li>Computing phase: A specified time passes, modeling processing of input data.</li>
+ <li>Sending phase: The specified send operations are performed for every write port. </li>
+ </ul>
+ <p>A channel is specified by two attributes:</p>
+ <ul>
+ <li>
+ <strong>elementType</strong>: the type that is sent or received via connected ports.
+ </li>
+ <li>
+ <strong>defaultElements</strong>: number of elements initially in the channel (at start-up).
+ </li>
+ <li>
+ <strong>maxElements</strong> (integer) denoting a buffer limit, that is, the channel depth.
+ </li>
+ </ul>
+ <p>In other words, no more than maxElements elements of the given type may be stored in the channel.</p>
+
+
+<h4><a id="section2.2.7.2"></a>Channel Access</h4>
+ <p>In the basic thinking model, all elements are stored as a sequential collection without buffer size limit (unlimited storage).</p>
+ <p>
+ <img src="images/user_channel_access.png"/>
+ </p>
+
+
+<h5><a id="section2.2.7.2.1"></a>Sending</h5>
+ <p>A runnable may send elements to a channel by issuing a send operations.
+ <br>The send operation has a single parameter:
+ </p>
+ <ul>
+ <li>elements (integer): Number of elements that are written.</li>
+ </ul>
+
+
+<h5><a id="section2.2.7.2.2"></a>Receiving</h5>
+ <p>A runnable may receive elements from a channel by issuing receive operations.
+ <br>The operation has multiple aspects:
+ </p>
+ <ul>
+ <li>
+ <strong>Port Type</strong>
+ <ul>
+ <li>A
+ <strong>LIFO</strong> (last-in, first-out) port is chosen if processing the last written elements is the primary focus and thereby missing elements is tolerable.
+ </li>
+ <li>A
+ <strong>FIFO</strong> (first-in, first-out) port is chosen if every written element needs to be handled, that is, loss of elements is not tolerable.
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <blockquote>
+ <p>The port type defines the direction the receive operations take effect: accesses from LIFO ports are from top of the sequential collection, while accesses from FIFO ports are from bottom of the sequential collection.</p>
+ </blockquote>
+ <ul>
+ <li>
+ <strong>Receive Operation</strong>
+ <ul>
+ <li>
+ <strong>Read</strong> will received elements without modifying the channel
+ </li>
+ <li>
+ <strong>Take</strong> will remove the received elements from the channel
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <p>Each operation has two parameters and several attributes specifying the exact behavior:</p>
+ <ul>
+ <li>
+ <strong>elements</strong> (integer): Maximum number n of elements that are received.
+ </li>
+ <li>
+ <strong>elementIndex</strong> (integer): Position (index i) in channel at which the operation is effective. Zero is the default and denotes the oldest (FIFO port) or newest element (LIFO port) in the channel.
+ </li>
+ </ul>
+ <p>Receive operations then are written in function notation, that is Read(n, i) and Take(n, i). For convenience, the index may be left out for default value '0' (Take(n,0) == Take(n)). See next figure for examples which elements are denoted by receive operations for FIFO and LIFO ports.</p>
+ <p>
+ <img src="images/user_channel_operations.png"/>
+ </p>
+ <p>Additional attributes further define the receive operation:</p>
+ <ul>
+ <li>
+ <strong>lowerBound</strong> (integer): Specify the minimum number of elements returned by the operation. The value must be in the range [0,n], with n is the maximum number of elements that are received as specified as attribute of the receive operation. Default value is n.
+ </li>
+ <li>
+ <strong>dataMustBeNew</strong> (Boolean): Specify if the operation must only return elements that are not previously read by this port. Default value is false.
+ </li>
+ </ul>
+
+
+<h5><a id="section2.2.7.2.3"></a>Common Read Policies: Last, New, and AllNew</h5>
+ <p>As three specific read policies are frequently used, these are introduced in the following.</p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Policy</th>
+ <th colspan="1" rowspan="1">Port Type</th>
+ <th colspan="1" rowspan="1">Operation</th>
+ <th colspan="1" rowspan="1">lower bound</th>
+ <th colspan="1" rowspan="1">must be new</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>Last(x)</strong>
+ </td>
+ <td colspan="1" rowspan="1">LIFO</td>
+ <td colspan="1" rowspan="1"> Read(x,0)</td>
+ <td colspan="1" rowspan="1">x</td>
+ <td colspan="1" rowspan="1">false</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>New(x)</strong>
+ </td>
+ <td colspan="1" rowspan="1">LIFO</td>
+ <td colspan="1" rowspan="1">Read(x,0)</td>
+ <td colspan="1" rowspan="1">0</td>
+ <td colspan="1" rowspan="1">true</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>AllNew</strong>
+ </td>
+ <td colspan="1" rowspan="1">FIFO</td>
+ <td colspan="1" rowspan="1">Take(sizeOfChannel,0)</td>
+ <td colspan="1" rowspan="1">0</td>
+ <td colspan="1" rowspan="1">true</td>
+ </tr>
+ </table>
+ <p>An example of the different behavior of the New and Last policy is shown in the next figure. For demonstration purpose, in the example periodic triggering of the receiving runnables R1 and R2 and sporadic data writing by runnable S is assumed. Note that while New may be used on an empty channel, Last would lead to an error (dashed boxes).
+ <br>Left: Static connection between three runnables (S, R1, and R2). Right: Dynamic view of writing elements to channel over time (green arrows), runnable execution indicated as blue boxes, and the resulting received elements shown in square brackets.
+ </p>
+ <p>
+ <img src="images/user_channel_example.png"/>
+ </p>
+
+
+<h4><a id="section2.2.7.3"></a>Transmission Policy</h4>
+ <p>To further specify how elements are accessed by a runnable in terms of computing time, an optional transmission policy may specify details for each receive and send operation. The intention of the transmission policy is to reflect computing demand (time) depending on data.</p>
+ <p>The transmission policy consists of the following attributes:</p>
+ <ul>
+ <li>
+ <strong>chunkSize</strong>: Size of a part of an element, maximum is the element size.
+ </li>
+ <li>
+ <strong>chunkProcessingInstructions</strong> (integer): Number of instructions that will be executed to send / receive one chunk.
+ </li>
+ <li>
+ <strong>transmitRatio</strong> (float): Specify the ratio of each element that is actually transmitted by the runnable in percent. Value must be between [0, 1], default value is 1.0.
+ </li>
+ </ul>
+ <p>Example for using transmission policy to detail the receiving phase of a runnable execution. Two elements are received, leading to transmission time as given in the formula. After the receiving phase, the runnable starts with the computing phase.</p>
+ <p>
+ <img src="images/user_channel_transmission_example.png"/>
+ </p>
+
+
+<h3><a id="section2.2.8">2.2.8 </a>Data Dependencies</h3>
+
+
+<h4><a id="section2.2.8.1"></a>Overview</h4>
+ <p>It is possible to specify potential data dependencies for written data. More specifically, it is now possible to annotate at write accesses what other data potentially have influenced the written data. A typical "influence" would be usage of data for computing a written value. As such data often comes from parameters when calling a runnable, it is now also possible to specify runnable parameters in Amalthea and their potential influence on written data.</p>
+ <p>Semantics of the new attributes in Amalthea is described in detail below. In general, these data dependency extensions are considered as a way to explicitly model details that help for visualization or expert reviews. For use cases such as timing simulation the data dependency extensions are of no importance and should be ignored. </p>
+
+
+<h4><a id="section2.2.8.2"></a>Internal Dataflow</h4>
+ <p>In Embedded Systems, external dataflow is specified with reads and writes to labels, which are visible globally. This is sufficient for describing the inter-runnable communication and other use-cases like memory optimization. Nevertheless, for description of signal flows along an event chain, it is also necessary to specify the internal dataflow so that the connection between the read labels and the written labels in made.
+ <br>Internal dataflow is specified as dependency of label writes to other labels, parameters of the runnable or event return values of called runnables. With this information, the connection of reads to writes of label can be drawn.
+ </p>
+ <p>
+ <img src="images/user_sw_data_dependency_view.png"/>
+ </p>
+ <p>The internal dependencies are typically generated through source code analysis. The analysis parses the code and determines all writes to labels. For each of those positions, a backward slicing is made on the abstract syntax tree to derive all reads that influence this write. This collection is then stored as dependency at the write access.
+ <br>Based upon this data a developer can now track a signal flow along from the sensor over several other runnables to the actuator. Existing event-chains can be automatically validated to contain a valid flow by checking if the segments containing a read label event and write label event within the same runnable are connected by an internal dependency. Without internal dependencies, this would introduce a huge manual effort. Afterwards the event-chains can be simulated and their end-to-end latencies determined with the usual tools.
+ </p>
+
+
+<h3><a id="section2.2.9">2.2.9 </a>Memory Sections</h3>
+ <p>
+ <b>Purpose</b>
+ </p>
+ <p>Memory Sections are used for the division of the memory (RAM/ROM) into different blocks and allocate the "software" memory elements (
+ <em>e.g. Labels</em>), code accordingly inside them.
+ <br>Each Memory Section has certain specific properties (
+ <em>e.g. faster access of the elements, storing constant values</em>). By default compiler vendors provide certain Memory Sections (
+ <em>e.g. .data, .text</em>) and additional Memory Sections can be created based on the project need by enhancing the linker configuration.
+ </p>
+ <p>
+ <b>Definition</b>
+ </p>
+ <p>A "Memory Section" is a region in memory (RAM/ROM) and is addressed with a specific name. There can exist multiple "Memory Sections" inside the same Memory (RAM/ROM) but with different names. Memory Section names should be unique across the Memory (RAM/ROM).</p>
+ <p>Memory Sections can be of two types: </p>
+ <ul>
+ <li>Virtual Memory Section</li>
+ <li>Physical Memory Section</li>
+ </ul>
+
+
+<h4><a id="section2.2.9.1"></a>Virtual Memory Section</h4>
+ <p>"Virtual Memory Sections" are defined as a part of data specification and are associated to the corresponding Memory Elements (e.g. Label's) during the development phase of the software. Intention behind associating "Virtual Memory Sections" to Memory elements like Label's is to control their allocation in specific Memory (e.g. Ram1 or Ram2) by linker. </p>
+ <p>As a part of linker configuration – It is possible to specify if a "Virtual Memory Section"
+ <i>(e.g. mem.Sec1)</i> can be part of certain Memory
+ <em>(e.g. Ram1/Ram2/SYSRAM but not Ram3)</em>.
+ </p>
+ <p>
+ <ins>
+ <em>Example:</em>
+ </ins>
+ </p>
+ <p>Software should be built for ManyCore ECU – containing 3 Cores
+ <em>(Core1, Core2, Core3)</em>. Following RAMs are associated to the Cores: Ram1 – Core1, Ram2 – Core2, Ram3 – Core3, and also there is SYSRAM.
+ </p>
+ <p>Virtual Memory Section : mem.sec1
+ <em>(is defined as part of data specification)</em> is associated to Label1 and Label2.
+ </p>
+ <p>
+ <img class="scale" src="images/user_section_label_ref_to_memsection.png"/>
+ </p>
+ <p>In Linker configuration it is specified that mem.sec1 can be allocated only in Ram1 or Ram2.</p>
+ <p>Below diagram represents the
+ <em>
+ <ins>
+ <strong>linker configuration content</strong>
+ </ins>
+ </em> - w.r.t. possibility for physical allocation of mem.sec1 in various memories .
+ </p>
+ <p>
+ <img class="scale" src="images/user_section_linker_memsection.png"/>
+ </p>
+ <p>Based on the above configuration – Linker will allocate Label1, Label2 either in Ram1/Ram2/SYSRAM but not in Ram3/Ram4.</p>
+
+
+<h4><a id="section2.2.9.2"></a>Physical Memory Section</h4>
+ <p>"Physical Memory Sections" are generated by linker. The linker allocates various memory elements (e.g. Label's) inside "Physical Memory Sections".</p>
+ <p>Each "Physical Memory Section" has following properties:</p>
+ <ul>
+ <li>Name – It will be unique across each Memory </li>
+ <li>Start and End address – This represents the size of "Physical Memory Section"</li>
+ <li>Associated Physical Memory
+ <em>(e.g. Ram1 or Ram2)</em>
+ </li>
+ </ul>
+ <p>
+ <ins>
+ <em>Example:</em>
+ </ins> There can exist mem.sec1.py inside Ram1 and also in Ram2. But these are physically two different elements as they are associated to different memories (Ram1 and Ram2) and also they have different "start and end address".
+ </p>
+ <p>Below diagram represents the information w.r.t. virtual memory sections
+ <em>(defined in data specification and associated to memory elements)</em> and physical memory sections
+ <i>(generated after linker run)</i>.
+ </p>
+ <p>
+ <img class="scale" src="images/user_section_virtual_to_physical.png"/>
+ </p>
+
+
+<h4><a id="section2.2.9.3"></a>Modeling Memory Section information in AMALTHEA</h4>
+ <ul>
+ <li>As described in the above concept section:
+ <ul>
+ <li>Virtual memory sections are used:
+ <ul>
+ <li>To specify constraints for creation of Physical memory sections by linker</li>
+ <li>To control allocation of data elements (e.g. Labels) in a specific memory
+ <em>(e.g. Ram1/Ram2/SYSRAM)</em>
+ </li>
+ </ul>
+ </li>
+ <li>Physical memory sections are containing the data elements after linker run
+ <em>(representing the software to be flashed into ECU)</em>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <p>Below figure represents the modeling of "Memory Section" (both virtual and physical) information in AMALTHEA model:
+ <br>
+ <img class="scale" src="images/user_section_amalthea.png"/>
+ </p>
+ <p>Below are equivalent elements of AMALTHEA model used for modeling the Memory Section information:</p>
+ <ul>
+ <li>
+ <strong>Section</strong>
+ <ul>
+ <li>This element is equivalent to Virtual Memory Section defined during the SW development phase.</li>
+ <li>As a part of data specification defined in the sw-development phase, a Section object
+ <em>(with specific name)</em> is associated to Label and Runnable elements.
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <ul>
+ <li>
+ <strong>PhysicalSectionConstraint</strong>
+ <ul>
+ <li>This element is equivalent to the constraint specified in the linker configuration file, which is used to instruct linker for the allocation of Physical Memory Sections in specified Memories.</li>
+ <li>PhysicalSectionContraint is used to specify the combination of Virtual Memory Section and Memories
+ <em>(which can be considered by linker for generation of Physical Memory Sections)</em>.
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <blockquote>
+ <p>
+ <em>
+ <ins>Example:</ins>
+ </em> PhysicalSectionConstraint-1 is specifying following relation "Section-1" &lt;--&gt; "Memory-1", "Memory-2". This means that the corresponding Physical Memory Section for "Section-1" can be generated by linker in "Memory-1" or in "Memory-2" or in both.
+ </p>
+ </blockquote>
+ <ul>
+ <li>
+ <strong>PhysicalSectionMapping</strong>
+ <ul>
+ <li>This element is equivalent to Physical Memory Section generated during the linker run.
+ <ul>
+ <li>Each PhysicalSectionMapping element:
+ <ul>
+ <li>Contains the Virtual Memory Section
+ <em>(e.g. Section-1)</em> which is the source.
+ </li>
+ <li>is associated to a specific Memory and it contains the start and end memory address
+ <em>(difference of start and end address represents the size of Physical Memory Section)</em>.
+ </li>
+ <li>contains the data elements
+ <em>(i.e. Labels, Runnables part of the final software)</em>.
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <blockquote>
+ <p>
+ <strong>Note:</strong> There is also a possibility to associate multiple Virtual Memory Section's as linker has a concept of grouping Virtual Memory Sections while generation of Physical Memory Section.
+ </p>
+ </blockquote>
+ <blockquote>
+ <p>
+ <em>
+ <ins>Example:</ins>
+ </em> For the same Virtual Memory Section
+ <i>(e.g. Section-1)</i>, linker can generate multiple Physical Memory Sections in different Memories
+ <em>(e.g. PhysicalSectionMapping-1, PhysicalSectionMapping-2)</em>. Each PhysicalSectionMapping element is an individual entity as it has a separate start and end memory address.
+ </p>
+ </blockquote>
+
+
+<h2><a id="section2.3">2.3 </a>Examples</h2>
+
+
+<h3><a id="section2.3.1">2.3.1 </a>Modeling Example 1</h3>
+
+
+<h4><a id="section2.3.1.1"></a>General information</h4>
+ <p>Modeling Example 1 describes a simple system consisting of 4 Tasks, which is running on a dual core processor.
+ <br>The following figure shows the execution footprint in a Gantt chart:
+ <br>
+ <img src="images/modeling_1_gantt.png"/>
+ <br>In the following sections, the individual parts of the AMALTHEA model for Modeling Example 1 are presented followed by a short description of its elements.
+ </p>
+
+
+<h4><a id="section2.3.1.2"></a>Hardware Model</h4>
+ <p>
+ <img src="images/modeling_1_hw.png"/>
+ </p>
+ <p>The hardware model of Modeling Example 1 consists as already mentioned of a dual core processor.
+ <br>The following gives a structural overview on the modeled elements.
+ <br>There, the two cores, 'Core_1' and 'Core_2', have a static processing frequency of 100 MHz each, which is specified by the corresponding quartz oscillator 'Quartz'.
+ </p>
+
+
+<h4><a id="section2.3.1.3"></a>Operating System Model</h4>
+ <p>
+ <img src="images/modeling_1_schedulers.png"/>
+ </p>
+ <p>The operating system (OS) model defines in case of Modeling Example 1 only the needed Scheduler.
+ <br>Since a dual core processor has to be managed, two schedulers are modeled correspondingly.
+ <br>In addition to the scheduling algorithm used by the scheduler, in this case OSEK, a delay of 100 ns is set, which is the presumed time the scheduler needs for context switches.
+ <br>A comprehension of the modeled properties can be found in the following table:
+ </p>
+ <table class="classic" style="text-align:center; background:#f8f8f8">
+ <tr style="background:#eee">
+ <th colspan="1" rowspan="1">Scheduler</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Algorithm</th>
+ <th colspan="1" rowspan="1">Delay</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>Scheduler_1</strong>
+ </td>
+ <td colspan="1" rowspan="1">SchedulingHWUnit</td>
+ <td colspan="1" rowspan="1">OSEK</td>
+ <td colspan="1" rowspan="1">100 ns</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>Scheduler_2</strong>
+ </td>
+ <td colspan="1" rowspan="1">SchedulingHWUnit</td>
+ <td colspan="1" rowspan="1">OSEK</td>
+ <td colspan="1" rowspan="1">100 ns</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section2.3.1.4"></a>Mapping Model</h4>
+ <p>
+ <img src="images/modeling_1_mapping.png"/>
+ </p>
+ <p>The mapping model defines allocations between different model parts.
+ <br>On the one hand, this is the allocation of processes to a scheduler.
+ <br>In case of Example 1, 'Task_1' and 'Task_2' are managed by 'Scheduler_1', while the other tasks are managed by 'Scheduler_2'.
+ <br>On the other hand the allocation of cores to a scheduler is set.
+ <br>For Modeling Example 1 two local schedulers were modeled.
+ <br>As a consequence, each scheduler manages one of the processing cores.
+ <br>A comprehension of the modeled properties can be found in the following tables:
+ </p>
+
+
+<h5><a id="section2.3.1.4.1"></a>Executable Allocation</h5>
+ <table class="classic" style="text-align:center; background:#f8f8f8">
+ <tr style="background:#eee">
+ <th colspan="1" rowspan="1">Scheduler</th>
+ <th colspan="1" rowspan="1">Process</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Scheduler_1</td>
+ <td colspan="1" rowspan="1">Task_1</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Scheduler_1</td>
+ <td colspan="1" rowspan="1">Task_2</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Scheduler_2</td>
+ <td colspan="1" rowspan="1">Task_3</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Scheduler_2</td>
+ <td colspan="1" rowspan="1">Task_4</td>
+ </tr>
+ </table>
+
+
+<h5><a id="section2.3.1.4.2"></a>Core Allocation</h5>
+ <table class="classic" style="text-align:center; background:#f8f8f8">
+ <tr style="background:#eee">
+ <th colspan="1" rowspan="1">Scheduler</th>
+ <th colspan="1" rowspan="1">Core</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Scheduler_1</td>
+ <td colspan="1" rowspan="1">Core_1</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Scheduler_2</td>
+ <td colspan="1" rowspan="1">Core_2</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section2.3.1.5"></a>Software Model</h4>
+
+
+<h5><a id="section2.3.1.5.1"></a>Tasks</h5>
+ <p>
+ <img src="images/modeling_1_tasks.png"/>
+ </p>
+ <p>As already mentioned above, the software model of Modeling Example 1 consists exactly of four tasks, named 'Task_1' to 'Task_4'.
+ <br>Each task is preemptive and has a priority assigned according its deadline, meaning the one with the shortest deadline, 'Task_1', has the highest priority, and so on.
+ <br>Each task also calls a definitive number of Runnables in a sequential order.
+ <br>A comprehension of the modeled properties can be found in the following table:
+ </p>
+ <table class="classic" style="text-align:center; background:#f8f8f8">
+ <tr style="background:#eee">
+ <th colspan="1" rowspan="1">Task</th>
+ <th colspan="1" rowspan="1">Priority</th>
+ <th colspan="1" rowspan="1">Preemption</th>
+ <th colspan="1" rowspan="1">MTA*</th>
+ <th colspan="1" rowspan="1">Deadline</th>
+ <th colspan="1" rowspan="1">Calls</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>Task_1</strong>
+ </td>
+ <td colspan="1" rowspan="1">4</td>
+ <td colspan="1" rowspan="1">Preemptive</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">75 ms</td>
+ <td colspan="1" rowspan="1">1) Runnable_1_1</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="2">
+ <strong>Task_2</strong>
+ </td>
+ <td colspan="1" rowspan="2">3</td>
+ <td colspan="1" rowspan="2">Preemptive</td>
+ <td colspan="1" rowspan="2">1</td>
+ <td colspan="1" rowspan="2">115 ms</td>
+ <td colspan="1" rowspan="1">1) Runnable_2_1</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">2) Runnable_2_2</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">
+ <strong>Task_3</strong>
+ </td>
+ <td colspan="1" rowspan="3">2</td>
+ <td colspan="1" rowspan="3">Preemptive</td>
+ <td colspan="1" rowspan="3">1</td>
+ <td colspan="1" rowspan="3">300 ms</td>
+ <td colspan="1" rowspan="1">1) Runnable_3_1</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">2) Runnable_3_2</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">3) Runnable_3_3</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="4">
+ <strong>Task_4</strong>
+ </td>
+ <td colspan="1" rowspan="4">1</td>
+ <td colspan="1" rowspan="4">Preemptive</td>
+ <td colspan="1" rowspan="4">1</td>
+ <td colspan="1" rowspan="4">960 ms</td>
+ <td colspan="1" rowspan="1">1) Runnable_4_1</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">2) Runnable_4_2</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">3) Runnable_4_3</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">4) Runnable_4_4</td>
+ </tr>
+ </table>
+ <p>*MTA = Multiple Task Activation Limit</p>
+
+
+<h5><a id="section2.3.1.5.2"></a>Runnables</h5>
+ <p>
+ <img src="images/modeling_1_runnables.png"/>
+ </p>
+ <p>In addition to the task, the software model also contains a definition of Runnables.
+ <br>For Modeling Example 1, ten individual Runnables are defined.
+ <br>The only function of those in this example is to consume processing resources.
+ <br>Therefore, for each Runnable a constant number of instruction cycles is stated.
+ <br>A comprehension of the modeled properties can be found in the following table:
+ </p>
+ <table class="classic" style="text-align:center; background:#f8f8f8">
+ <tr style="background:#eee">
+ <th colspan="1" rowspan="1">Runnable</th>
+ <th colspan="1" rowspan="1">InstructionCycles</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Runnable_1_1</td>
+ <td colspan="1" rowspan="1">1500000</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Runnable_2_1</td>
+ <td colspan="1" rowspan="1">1500000</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Runnable_2_2</td>
+ <td colspan="1" rowspan="1">1500000</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Runnable_3_1</td>
+ <td colspan="1" rowspan="1">1000000</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Runnable_3_2</td>
+ <td colspan="1" rowspan="1">2000000</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Runnable_3_3</td>
+ <td colspan="1" rowspan="1">1000000</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Runnable_4_1</td>
+ <td colspan="1" rowspan="1">1000000</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Runnable_4_2</td>
+ <td colspan="1" rowspan="1">2000000</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Runnable_4_3</td>
+ <td colspan="1" rowspan="1">3000000</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Runnable_4_4</td>
+ <td colspan="1" rowspan="1">2000000</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section2.3.1.6"></a>Stimuli Model</h4>
+ <p>
+ <img src="images/modeling_1_stimuli.png"/>
+ </p>
+ <p>The stimulation model defines the activations of tasks.
+ <br>Since the four tasks of Modeling Example 1 are activated periodically, four stimuli according their recurrence are modeled.
+ <br>A comprehension of the modeled properties can be found in the following table:
+ </p>
+ <table class="classic" style="text-align:center; background:#f8f8f8">
+ <tr style="background:#eee">
+ <th colspan="1" rowspan="1">Stimulus</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Offset</th>
+ <th colspan="1" rowspan="1">Recurrence</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Stimulus_Task_1</td>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="1">0 ms</td>
+ <td colspan="1" rowspan="1">180 ms</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Stimulus_Task_2</td>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="1">0 ms</td>
+ <td colspan="1" rowspan="1">200 ms</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Stimulus_Task_3</td>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="1">0 ms</td>
+ <td colspan="1" rowspan="1">300 ms</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Stimulus_Task_4</td>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="1">0 ms</td>
+ <td colspan="1" rowspan="1">1 s</td>
+ </tr>
+ </table>
+
+
+<h3><a id="section2.3.2">2.3.2 </a>Modeling Example 2</h3>
+
+
+<h4><a id="section2.3.2.1"></a>General information</h4>
+ <p>Modeling Example 2 describes a simple system consisting of 4 Tasks, which is running on a single core processor.
+ <br>The following figure shows the execution footprint in a Gantt chart:
+ <br>
+ <img src="images/modeling_2_gantt.png"/>
+ <br>In the following sections, the individual parts of the AMALTHEA model for Modeling Example 2 are presented followed by a short description of its elements.
+ </p>
+
+
+<h4><a id="section2.3.2.2"></a>Hardware Model</h4>
+ <p>
+ <img src="images/modeling_2_hw.png"/>
+ </p>
+ <p>The hardware model of Modeling Example 2 consists as already mentioned of a single core processor.
+ <br>The following gives a structural overview on the modeled elements.
+ <br>There, the core, 'Core_1' , has a static processing frequency of 600 MHz each, which is specified by the corresponding quartz oscillator 'Quartz_1'.
+ </p>
+
+
+<h4><a id="section2.3.2.3"></a>Operating System Model</h4>
+ <p>
+ <img src="images/modeling_2_scheduler.png"/>
+ </p>
+ <p>The operating system (OS) model defines in case of Modeling Example 2 only the needed Scheduler.
+ <br>Since only a single core has to be managed, a single scheduler is modeled correspondingly.
+ <br>In addition to the scheduling algorithm used by the scheduler, in this case OSEK, a delay of 100 ns is set, which is the presumed time the scheduler needs for context switches.
+ <br>A comprehension of the modeled properties can be found in the following table:
+ </p>
+ <table class="classic" style="text-align:center; background:#f8f8f8">
+ <tr style="background:#eee">
+ <th colspan="1" rowspan="1">Scheduler</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Algorithm</th>
+ <th colspan="1" rowspan="1">Delay</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>Scheduler_1</strong>
+ </td>
+ <td colspan="1" rowspan="1">SchedulingHwUnit</td>
+ <td colspan="1" rowspan="1">OSEK</td>
+ <td colspan="1" rowspan="1">100 ns</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section2.3.2.4"></a>Mapping Model</h4>
+ <p>
+ <img src="images/modeling_2_mapping.png"/>
+ </p>
+ <p>The mapping model defines allocations between different model parts.
+ <br>On the one hand, this is the allocation of processes to a scheduler.
+ <br>Since there is only one scheduler available in the system, all four tasks are mapped to 'Scheduler_1'.
+ <br>On the other hand the allocation of cores to a scheduler is set.
+ <br>As a consequence, the scheduler manages the only available processing core.
+ <br>A comprehension of the modeled properties can be found in the following tables:
+ </p>
+
+
+<h5><a id="section2.3.2.4.1"></a>Executable Allocation</h5>
+ <table class="classic" style="text-align:center; background:#f8f8f8">
+ <tr style="background:#eee">
+ <th colspan="1" rowspan="1">Scheduler</th>
+ <th colspan="1" rowspan="1">Process</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Scheduler_1</td>
+ <td colspan="1" rowspan="1">Task_1</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Scheduler_1</td>
+ <td colspan="1" rowspan="1">Task_2</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Scheduler_1</td>
+ <td colspan="1" rowspan="1">Task_3</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Scheduler_1</td>
+ <td colspan="1" rowspan="1">Task_4</td>
+ </tr>
+ </table>
+
+
+<h5><a id="section2.3.2.4.2"></a>Core Allocation</h5>
+ <table class="classic" style="text-align:center; background:#f8f8f8">
+ <tr style="background:#eee">
+ <th colspan="1" rowspan="1">Scheduler</th>
+ <th colspan="1" rowspan="1">Core</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Scheduler_1</td>
+ <td colspan="1" rowspan="1">Core_1</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section2.3.2.5"></a>Software Model</h4>
+
+
+<h5><a id="section2.3.2.5.1"></a>Tasks</h5>
+ <p>
+ <img src="images/modeling_2_tasks.png"/>
+ </p>
+ <p>As already mentioned above, the software model of Modeling Example 2 consists exactly of four tasks, named 'Task_1' to 'Task_4'.
+ <br>All tasks have assigned the same priority (10) to get a cooperative scheduling.
+ <br>'Task_2' to'Task_4' call a definitive number of Runnables in a sequential order.
+ <br>'Task_1' instead contains a call graph that models two different possible execution sequences.
+ <br>In 70% of the cases the sequence 'Runnable_1_1', 'Runnable_1_2', 'Task_2', 'Runnable_1_4' is called, while in the remaining 30% the sequence 'Runnable_1_1', 'Runnable_1_3', 'Task_3', 'Runnable_1_4' is called.
+ <br>As it can be seen, the call graph of 'Task_1' contains also interprocess activations, which activate other tasks.
+ <br>A comprehension of the modeled properties can be found in the following table:
+ </p>
+ <table class="classic" style="text-align:center; background:#f8f8f8">
+ <tr style="background:#eee">
+ <th colspan="1" rowspan="1">Task</th>
+ <th colspan="1" rowspan="1">Priority</th>
+ <th colspan="1" rowspan="1">Preemption</th>
+ <th colspan="1" rowspan="1">MTA*</th>
+ <th colspan="1" rowspan="1">Deadline</th>
+ <th colspan="1" rowspan="1">Calls</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="8">
+ <strong>Task_1</strong>
+ </td>
+ <td colspan="1" rowspan="8">10</td>
+ <td colspan="1" rowspan="8">Preemptive</td>
+ <td colspan="1" rowspan="8">3</td>
+ <td colspan="1" rowspan="8">25 ms</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">1.1) Runnable_1_1</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">1.2) Runnable_1_2</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">1.3) Task_2</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">1.4) Runnable_1_4</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">2.1) Runnable_1_1</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">2.2) Runnable_1_3</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">2.3) Task_3</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">2.4) Runnable_1_4</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>Task_2</strong>
+ </td>
+ <td colspan="1" rowspan="1">10</td>
+ <td colspan="1" rowspan="1">Preemptive</td>
+ <td colspan="1" rowspan="1">3</td>
+ <td colspan="1" rowspan="1">25 ms</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">1) Runnable_2_1</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>Task_3</strong>
+ </td>
+ <td colspan="1" rowspan="1">10</td>
+ <td colspan="1" rowspan="1">Preemptive</td>
+ <td colspan="1" rowspan="1">3</td>
+ <td colspan="1" rowspan="1">25 ms</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">1) Runnable_3_1</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>Task_4</strong>
+ </td>
+ <td colspan="1" rowspan="1">10</td>
+ <td colspan="1" rowspan="1">Preemptive</td>
+ <td colspan="1" rowspan="1">3</td>
+ <td colspan="1" rowspan="1">25 ms</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">1) Runnable_4_1</td>
+ </tr>
+ </table>
+ <p>*MTA = Multiple Task Activation Limit</p>
+
+
+<h5><a id="section2.3.2.5.2"></a>Runnables</h5>
+ <p>
+ <img src="images/modeling_2_runnables.png"/>
+ </p>
+ <p>In addition to the task, the software model also contains a definition of Runnables.
+ <br>For Modeling Example 2, seven individual Runnables are defined.
+ <br>The only function of those in this example is to consume processing resources.
+ <br>Therefore, for each Runnable a number of instruction cycles is stated.
+ <br>The number of instruction cycles is thereby either constant or defined by a statistical distribution.
+ <br>A comprehension of the modeled properties can be found in the following table:
+ </p>
+ <table class="classic" style="text-align:center; background:#f8f8f8">
+ <tr style="background:#eee">
+ <th colspan="1" rowspan="1">Runnable</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Instructions</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>Runnable_1_1</strong>
+ </td>
+ <td colspan="1" rowspan="1">Constant</td>
+ <td colspan="1" rowspan="1">1000000</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>Runnable_1_2</strong>
+ </td>
+ <td colspan="1" rowspan="1">Constant</td>
+ <td colspan="1" rowspan="1">2000000</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>Runnable_1_3</strong>
+ </td>
+ <td colspan="1" rowspan="1">Constant</td>
+ <td colspan="1" rowspan="1">3000000</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>Runnable_1_4</strong>
+ </td>
+ <td colspan="1" rowspan="1">Constant</td>
+ <td colspan="1" rowspan="1">4000000</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="2">
+ <strong>Runnable_2_1</strong>
+ </td>
+ <td colspan="1" rowspan="2">Uniform Distribution</td>
+ <td colspan="1" rowspan="1">1000000</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">5000000</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">
+ <strong>Runnable_3_1</strong>
+ </td>
+ <td colspan="1" rowspan="3">Gauss Distribution</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">mean: 1000000</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">sd: 50000</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">upper: 5000000</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>Runnable_4_1</strong>
+ </td>
+ <td colspan="1" rowspan="1">Constant</td>
+ <td colspan="1" rowspan="1">4000000</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section2.3.2.6"></a>Stimulation Model</h4>
+ <p>
+ <img src="images/modeling_2_stimuli.png"/>
+ </p>
+ <p>The stimulation model defines the activations of tasks.
+ <br>'Task_1' is activated periodically by 'Stimulus_Task_1'
+ <br>'Stimulus_Task_2' and 'Stimulus_Task_3' represent the inter-process activations for the corresponding tasks.
+ <br>'Task_4' finally is activated sporadically following a Gauss distribution.
+ <br>A comprehension of the modeled properties can be found in the following table:
+ </p>
+ <table class="classic" style="text-align:center; background:#f8f8f8">
+ <tr style="background:#eee">
+ <th colspan="1" rowspan="1">Stimulus</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Parameters</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="2">
+ <strong>Stimulus_Task_1</strong>
+ </td>
+ <td colspan="1" rowspan="2">Periodic</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">offset: 0 ms</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">recurrence: 25 ms</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>Stimulus_Task_2</strong>
+ </td>
+ <td colspan="1" rowspan="1">Inter-Process</td>
+ <td colspan="1" rowspan="1"/>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>Stimulus_Task_3</strong>
+ </td>
+ <td colspan="1" rowspan="1">Inter-Process</td>
+ <td colspan="1" rowspan="1"/>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">
+ <strong>Stimulus_Task_4</strong>
+ </td>
+ <td colspan="1" rowspan="3">Sporadic (Gauss)</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">mean: 30 ms</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">sd: 5 ms</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">upper: 100 ms</td>
+ </tr>
+ </table>
+
+
+<h3><a id="section2.3.3">2.3.3 </a>Modeling Example "Purely Periodic without Communication"</h3>
+ <p>This system architecture pattern consists of a task set, where each task is activated periodically and no data accesses are performed. The execution time for each task is determined by the called runnable entities as specified in the table below. All tasks contain just one runnable except of T<sub>7</sub>, which calls at first R<sub>7,1</sub> and after that R<sub>7,2</sub>.</p>
+ <p>The table below gives a detailed specification of the tasks and their parameters. The tasks are scheduled according fixed-priority, preemptive scheduling and if not indicated otherwise, all events are active in order to get a detailed insight into the system's behavior.</p>
+ <table class="classic" style="text-align:center; background:#f8f8f8">
+ <tr style="background:#eee">
+ <th colspan="1" rowspan="1">Task</th>
+ <th colspan="1" rowspan="1">Priority</th>
+ <th colspan="1" rowspan="1">Preemption</th>
+ <th colspan="1" rowspan="1">Multiple Task Activation Limit</th>
+ <th colspan="1" rowspan="1">Activation</th>
+ <th colspan="2" rowspan="1">Execution Time</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">T<sub>1</sub></td>
+ <td colspan="1" rowspan="3">7</td>
+ <td colspan="1" rowspan="3">FULL</td>
+ <td colspan="1" rowspan="3">1</td>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="3">R<sub>1</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 0</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 9.95</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 80</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 10</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">T<sub>2</sub></td>
+ <td colspan="1" rowspan="3">6</td>
+ <td colspan="1" rowspan="3">FULL</td>
+ <td colspan="1" rowspan="3">1</td>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="3">R<sub>2</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 0</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 29.95</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 120</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 30</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">T<sub>3</sub></td>
+ <td colspan="1" rowspan="3">5</td>
+ <td colspan="1" rowspan="3">FULL</td>
+ <td colspan="1" rowspan="3">1</td>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="3">R<sub>3</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 0</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 19.95</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 160</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 20</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">T<sub>4</sub></td>
+ <td colspan="1" rowspan="3">4</td>
+ <td colspan="1" rowspan="3">FULL</td>
+ <td colspan="1" rowspan="3">1</td>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="3">R<sub>4</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 0</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 14.95</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 180</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 15</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">T<sub>5</sub></td>
+ <td colspan="1" rowspan="3">3</td>
+ <td colspan="1" rowspan="3">FULL</td>
+ <td colspan="1" rowspan="3">1</td>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="3">R<sub>5</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 0</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 29.95</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 200</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 30</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">T<sub>6</sub></td>
+ <td colspan="1" rowspan="3">2</td>
+ <td colspan="1" rowspan="3">FULL</td>
+ <td colspan="1" rowspan="3">1</td>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="3">R<sub>6</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 0</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 39.95</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 300</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 40</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="6">T<sub>7</sub></td>
+ <td colspan="1" rowspan="6">1</td>
+ <td colspan="1" rowspan="6">FULL</td>
+ <td colspan="1" rowspan="6">1</td>
+ <td colspan="1" rowspan="2"/>
+ <td colspan="1" rowspan="3">R<sub>7,1</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 59.95</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 60</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 0</td>
+ <td colspan="1" rowspan="3">R<sub>7,2</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 1000</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 19.95</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1"/>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 20</td>
+ </tr>
+ </table>
+ <p>In order to show the impact of changes to the model, the following consecutive variations are made to the model: </p>
+ <dl>
+ <dt>
+ <b>1) Initial Task Set</b>
+ </dt>
+ <dd>For this variation, the Tasks T<sub>4</sub>, T<sub>5</sub>, T<sub>6</sub>, and T<sub>7</sub> of the table above are active.
+ <br>
+ <img src="images/modeling_example_periodic_1.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>2) Increase of Task Set Size I</b>
+ </dt>
+ <dd>For this variation, the Tasks T<sub>3</sub>, T<sub>4</sub>, T<sub>5</sub>, T<sub>6</sub>, and T<sub>7</sub> are active. That way the utilization of the system is increased.
+ <br>
+ <img src="images/modeling_example_periodic_2.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>3) Increase of Task Set Size II</b>
+ </dt>
+ <dd>For this variation, the Tasks T<sub>1</sub>, T<sub>3</sub>, T<sub>4</sub>, T<sub>5</sub>, T<sub>6</sub>, and T<sub>7</sub> are active. That way the utilization of the system is increased.
+ <br>
+ <img src="images/modeling_example_periodic_3.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>4) Increase of Task Set Size III</b>
+ </dt>
+ <dd>As from this variation on, all tasks (T<sub>1</sub> - T<sub>7</sub>) are active. That way the utilization of the system is increased.
+ <br>
+ <img src="images/modeling_example_periodic_4.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>5) Accuracy in Logging</b>
+ </dt>
+ <dd>For this variation, just task events are active. That way, only a limited insight into the system's runtime behavior is available.
+ <br>
+ <img src="images/modeling_example_periodic_5.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>6) Schedule</b>
+ </dt>
+ <dd>As from this variation on, T<sub>7</sub> is set to non-preemptive. That way, the timing behavior is changed, which results in extinct activations (see red mark in the figure below).
+ <br>
+ <img src="images/modeling_example_periodic_6.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>7) Activation</b>
+ </dt>
+ <dd>As from this variation on, the maximum number of queued activation requests for all tasks is set to 2. That way, the problem with extinct activations resulting from the previous variation is solved.
+ <br>
+ <img src="images/modeling_example_periodic_7.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>8) Schedule Point</b>
+ </dt>
+ <dd>For this variation, a schedule point is added to T<sub>7</sub> between the calls of R<sub>7,1</sub> and R<sub>7,2</sub>. That way, the timing behavior is changed in particular.
+ <br>
+ <img src="images/modeling_example_periodic_8.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>9) Scheduling Algorithm</b>
+ </dt>
+ <dd>For this variation, the scheduling algorithm is set to Earliest Deadline First. That way, the timing behavior is changed completely.
+ <br>
+ <img src="images/modeling_example_periodic_9.png"/>
+ </dd>
+ </dl>
+
+
+<h3><a id="section2.3.4">2.3.4 </a>Modeling Example "Client-Server without Reply"</h3>
+ <p>This system architecture pattern extends the modeling example "Purely Periodic without Communication" by adding an one-way communication between tasks. It consists of two tasks T<sub>1</sub>, and T<sub>2</sub>. Task T<sub>1</sub> sends a message to Task T<sub>2</sub> before runnable R<sub>1</sub> is called. In 20% of the cases Message 1, in 30% of the cases Message 2, in 20% of the cases Message 3, in 15% of the cases Message 4, and in 15% of the cases any other message than the previously mentioned ones is sent. Task T<sub>2</sub> reacts on the contents of the message by calling different runnables. In case of Message 1 runnable R<sub>2,1</sub>, in case of Message 2 runnable R<sub>2,2</sub>, in case of Message 3 runnable R<sub>2,3</sub>, in case of Message 4 runnable R<sub>2,4</sub>, and in case of any other message than the previous mentioned ones runnable R<sub>2,x</sub> is called as default.</p>
+ <p>
+ <img src="images/modeling_example_client_server.png"/>
+ </p>
+ <p>The table below gives a detailed specification of the tasks and their parameters. The tasks are scheduled according fixed-priority, preemptive scheduling and if not indicated otherwise, all events are active in order to get a detailed insight into the system's behavior.</p>
+ <table class="classic" style="text-align:center; background:#f8f8f8">
+ <tr style="background:#eee">
+ <th colspan="1" rowspan="1">Task</th>
+ <th colspan="1" rowspan="1">Priority</th>
+ <th colspan="1" rowspan="1">Preemption</th>
+ <th colspan="1" rowspan="1">Multiple Task Activation Limit</th>
+ <th colspan="1" rowspan="1">Activation</th>
+ <th colspan="2" rowspan="1">Execution Time</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">T<sub>1</sub></td>
+ <td colspan="1" rowspan="3">2</td>
+ <td colspan="1" rowspan="3">FULL</td>
+ <td colspan="1" rowspan="3">1</td>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="3">R<sub>1</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 0</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 9.9 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 100 * 10<sup>6</sup></td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 10 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="15">T<sub>2</sub></td>
+ <td colspan="1" rowspan="15">1</td>
+ <td colspan="1" rowspan="15">FULL</td>
+ <td colspan="1" rowspan="15">1</td>
+ <td colspan="1" rowspan="6"/>
+ <td colspan="1" rowspan="3">R<sub>2,x</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 99</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 100</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">R<sub>2,1</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 990</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 1 * 10<sup>3</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="3">R<sub>2,2</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 15 * 10<sup>6</sup></td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 49.5 * 10<sup>3</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 60 * 10<sup>6</sup></td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 50 * 10<sup>3</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="6"/>
+ <td colspan="1" rowspan="3">R<sub>2,3</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 990 * 10<sup>3</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 1 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">R<sub>2,4</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 39.6 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 40 * 10<sup>6</sup></td>
+ </tr>
+ </table>
+ <p>In order to show the impact of changes to the model, the following consecutive variations are made to the model:</p>
+ <dl>
+ <dt>
+ <b>1) Initial Task Set</b>
+ </dt>
+ <dd>As defined by the table above.
+ <br>
+ <img src="images/modeling_example_client_server_1.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>2) Exclusive Area</b>
+ </dt>
+ <dd>For this variation, all data accesses are protected by an exclusive area. Therefore, the data accesses in T<sub>1</sub> as well as all runnables in T<sub>2</sub> (R<sub>2,x</sub>, R<sub>2,1</sub>, R<sub>2,2</sub>, R<sub>2,3</sub>, and R<sub>2,4</sub>) are protected during their complete time of execution via a mutex and priority ceiling protocol. That way, blocking situations appear.
+ <br>
+ <img src="images/modeling_example_client_server_2.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>3) Inter-process Activation</b>
+ </dt>
+ <dd>As from this variation on, task T<sub>2</sub> gets activated by an inter-process activation from task T<sub>1</sub> instead of being activated periodically. The interprocess activation is performed right after the message
+ <em>message</em> is written in T<sub>2</sub> and consequently before the runnable R<sub>1</sub> is called. That way, a direct connection between T<sub>1</sub> and T<sub>2</sub> is established.
+ <br>
+ <img src="images/modeling_example_client_server_3.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>4) Priority Ordering</b>
+ </dt>
+ <dd>As from this variation on, the priority relation between task T<sub>1</sub> and T<sub>2</sub> is reversed. As a consequence, the priority of task T<sub>1</sub> is set to 1 and the priority of task T<sub>2</sub> is set to 2. That way, a switch from asynchronous to synchronous communication is considered.
+ <br>
+ <img src="images/modeling_example_client_server_4.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>5) Event Frequency Increase</b>
+ </dt>
+ <dd>As from this variation on, the periodicity of T<sub>1</sub> is shortened. For this, the value for the period of task T<sub>1</sub> is cut in half to 50 * 10<sup>6</sup> time units. That way, the utilization of the system is increased.
+ <br>
+ <img src="images/modeling_example_client_server_5.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>6) Execution Time Fluctuation</b>
+ </dt>
+ <dd>As from this variation on, the execution time distribution is widened for both tasks. Therefore, the maximum of every uniform distribution is increased by 1 percent so that they vary now by 2 percent. That way, the utilization of the system is increased, which results in extinct activations.
+ <br>
+ <img src="images/modeling_example_client_server_6.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>7) Activation</b>
+ </dt>
+ <dd>As from this variation on, the maximum number of queued activation requests for both tasks is set to 2. That way, the problem with extinct activations resulting from the previous variation is solved.
+ <br>
+ <img src="images/modeling_example_client_server_7.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>8) Accuracy in Logging of Data State I</b>
+ </dt>
+ <dd>For this variation, the data accesses in task T<sub>1</sub> and task T<sub>2</sub> are omitted. Instead, the runnable entities R<sub>2,x</sub>, R<sub>2,1</sub>, R<sub>2,2</sub>, R<sub>2,3</sub>, and R<sub>2,4</sub>, each representing the receipt of a specific message, are executed equally random, meaning each with a probability of 20%. That way, only a limited insight into the system's runtime behavior is available.
+ <br>
+ <img src="images/modeling_example_client_server_8.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>9) Accuracy in Logging of Data State II</b>
+ </dt>
+ <dd>For this variation, just task events are active. That way, only a limited insight into the system's runtime behavior is available.
+ <br>
+ <img src="images/modeling_example_client_server_9.png"/>
+ </dd>
+ </dl>
+
+
+<h3><a id="section2.3.5">2.3.5 </a>Modeling Example "State Machine"</h3>
+ <p>In this system architecture pattern the modeling example "Client Server without Reply" is extended in such a way that now the task that receives messages (T<sub>2</sub>) not only varies its dynamic behavior and consequently also its execution time according the transmitted content but also depending on its internal state, meaning the prior transmitted contents. To achieve, this task T<sub>1</sub> sends a message to task T<sub>2</sub> with either 0 or 1 before runnable R<sub>1</sub> is called. The value 0 is used in 75 % of the cases and 1 in the other cases as content of the message. Starting in state 0, T<sub>2</sub> decreases or increases the state its currently in depending on the content of the message, 0 or 1 respectively. The runnable R
+ <sub>2,1</sub>, R
+ <sub>2,2</sub>, and R
+ <sub>2,3</sub> represent then the three different states that the system can be in.
+ </p>
+ <p>
+ <img src="images/modeling_example_state_machine.png"/>
+ </p>
+ <p>The table below gives a detailed specification of the tasks and their parameters. The tasks are scheduled according fixed-priority, preemptive scheduling and if not indicated otherwise, all events are active in order to get a detailed insight into the system's behavior.</p>
+ <table class="classic" style="text-align:center; background:#f8f8f8">
+ <tr style="background:#eee">
+ <th colspan="1" rowspan="1">Task</th>
+ <th colspan="1" rowspan="1">Priority</th>
+ <th colspan="1" rowspan="1">Preemption</th>
+ <th colspan="1" rowspan="1">Multiple Task Activation Limit</th>
+ <th colspan="1" rowspan="1">Activation</th>
+ <th colspan="2" rowspan="1">Execution Time</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">T<sub>1</sub></td>
+ <td colspan="1" rowspan="3">2</td>
+ <td colspan="1" rowspan="3">FULL</td>
+ <td colspan="1" rowspan="3">1</td>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="3">R<sub>1</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 0</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 9.9 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 100 * 10<sup>6</sup></td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 10 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="9">T<sub>2</sub></td>
+ <td colspan="1" rowspan="9">1</td>
+ <td colspan="1" rowspan="9">FULL</td>
+ <td colspan="1" rowspan="9">1</td>
+ <td colspan="1" rowspan="3"/>
+ <td colspan="1" rowspan="3">R
+ <sub>2,1</sub>
+ </td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 99</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 100</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="3">R
+ <sub>2,2</sub>
+ </td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 15 * 10<sup>6</sup></td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 99 * 10<sup>3</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 60 * 10<sup>6</sup></td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 100 * 10<sup>3</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3"/>
+ <td colspan="1" rowspan="3">R<sub>2,3</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 49.5 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 50 * 10<sup>6</sup></td>
+ </tr>
+ </table>
+ <p>In order to show the impact of changes to the model, the following consecutive variations are made to the model:</p>
+ <dl>
+ <dt>
+ <b>1) Initial Task Set</b>
+ </dt>
+ <dd>As defined by the table above.
+ <br>
+ <img src="images/modeling_example_state_machine_1.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>2) Exclusive Area</b>
+ </dt>
+ <dd>For this variation, all data accesses are protected by an exclusive area. Therefore, the data accesses in T<sub>1</sub> as well as all runnables in T<sub>2</sub> (R<sub>2,1</sub>, R<sub>2,2</sub>, and R<sub>2,3</sub>) are protected during their complete time of execution via a mutex and priority ceiling protocol. That way, blocking situations appear.
+ <br>
+ <img src="images/modeling_example_state_machine_2.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>3) Priority Ordering</b>
+ </dt>
+ <dd>As from this variation on, the priority relation between task T<sub>1</sub> and T<sub>2</sub> is reversed. As a consequence, the priority of task T<sub>1</sub> is set to 1 and the priority of task T<sub>2</sub> is set to 2. That way, the timing behavior is changed fully.
+ <br>
+ <img src="images/modeling_example_state_machine_3.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>4) Inter-process Activation</b>
+ </dt>
+ <dd>As from this variation on, task T<sub>2</sub> gets activated by an inter-process activation from task T<sub>1</sub> instead of being activated periodically. The interprocess activation is performed right after the message
+ <em>message</em> is written in T<sub>1</sub> and consequently before the runnable R<sub>1</sub> is called. That way, a direct connection between T<sub>1</sub> and T<sub>2</sub> is established.
+ <br>
+ <img src="images/modeling_example_state_machine_4.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>5) Event Frequency Increase</b>
+ </dt>
+ <dd>As from this variation on, the periodicity of T<sub>1</sub> is shortened. For this, the value for the period of task T<sub>1</sub> is halved to 50 * 10<sup>6</sup>. That way, the utilization of the system is increased, which results in extinct activations.
+ <br>
+ <img src="images/modeling_example_state_machine_5.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>6) Activation</b>
+ </dt>
+ <dd>As from this variation on, the maximum number of queued activation requests for both tasks is set to 2. That way, the problem with extinct activations resulting from the previous variation is solved.
+ <br>
+ <img src="images/modeling_example_state_machine_6.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>7) Execution Time Fluctuation</b>
+ </dt>
+ <dd>As from this variation on, the execution time distribution is widened for both tasks. Therefore, the maximum of the uniform distribution is increased by 1 percent so that the uniform distribution varies now by 2 percent. That way, the utilization of the system is further increased.
+ <br>
+ <img src="images/modeling_example_state_machine_7.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>8) Accuracy in Logging of Data State I</b>
+ </dt>
+ <dd>For this variation, the data write accesses in task T<sub>1</sub> and task T<sub>2</sub> are omitted. Instead, the runnables R<sub>2,1</sub>, R<sub>2,2</sub>, and R<sub>2,3</sub>, each representing the execution of a specific state, are executed with a probability of 60 %, 30 %, and 10 % respectively. That way, only a limited insight into the system's runtime behavior is available.
+ <br>
+ <img src="images/modeling_example_state_machine_8.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>9) Accuracy in Logging of Data State II</b>
+ </dt>
+ <dd>For this variation, just task events are active. That way, only a limited insight into the system's runtime behavior is available.
+ <br>
+ <img src="images/modeling_example_state_machine_9.png"/>
+ </dd>
+ </dl>
+
+
+<h3><a id="section2.3.6">2.3.6 </a>Modeling Example "Feedback Loop"</h3>
+ <p>The task set of the modeling example "State Machine" is expanded further in this architecture pattern with the result that messages are exchanged in a loop, instead of just in one way. To achieve this, task T<sub>1</sub> sends a message
+ <em>u</em> to task T<sub>2</sub> before runnable R<sub>1</sub> is called. The content of this message is 0, if the content of a previously received message
+ <em>e</em> is 0, or 1 if it was 1. Task T<sub>2</sub> represents then a state machine with three states that increases its state, if message
+ <em>u</em> is 1 and decreases, if it is 0. In each state the messages
+ <em>y</em> and
+ <em>w</em> are set with state specific values and sent to task T<sub>3</sub> and task T<sub>4</sub> respectively. In case of
+ <em>State 0</em>, the messages
+ <em>y</em> and
+ <em>w</em> contain the value 0, in case of
+ <em>State 1</em> both contain 50 and in case of
+ <em>State 2</em> the value 100 is sent. These messages are written before runnable R<sub>2</sub> is called. However, in 30 % of the cases task T<sub>4</sub> is activated via an inter-process activation before this runnable call happens. Task T<sub>3</sub> varies its dynamic behavior and consequently also its execution time according the transmitted content of message
+ <em>y</em>. Task T<sub>4</sub> finally prepares again the input for task T<sub>1</sub>. If the content received in message
+ <em>w</em> is 0, then in 30% of the cases the content of message
+ <em>e</em> is 0, otherwise 1. In the case that message
+ <em>w</em> is 50, message
+ <em>e</em> is set to 0 with a probability of 50% and to 1 accordingly. Finally, message
+ <em>e</em> is set to 0 in 70% of the cases and to 1 in 30% of the cases, if message
+ <em>w</em> is 100. In addition to this feedback loop, other system architecture patterns are added to be executed concurrently in order to increase the complexity. The tasks T<sub>5</sub> and T<sub>6</sub> represent a client-server without reply and are equal to the tasks T<sub>1</sub> and T<sub>2</sub> respectively as described in the modeling example "Client-Server without Reply". T<sub>7</sub> is a periodically activated task without any communication and identical to task T<sub>7</sub> of modeling example "Purely Periodic without Communication".
+ </p>
+ <p>
+ <img src="images/modeling_example_feedback_loop.png"/>
+ </p>
+ <p>The table below gives a detailed specification of the tasks and their parameters. The tasks are scheduled according fixed-priority, preemptive scheduling and if not indicated otherwise, all events are active in order to get a detailed insight into the system's behavior.</p>
+ <table class="classic" style="text-align:center; background:#f8f8f8">
+ <tr style="background:#eee">
+ <th colspan="1" rowspan="1">Task</th>
+ <th colspan="1" rowspan="1">Priority</th>
+ <th colspan="1" rowspan="1">Preemption</th>
+ <th colspan="1" rowspan="1">Multiple Task Activation Limit</th>
+ <th colspan="1" rowspan="1">Activation</th>
+ <th colspan="2" rowspan="1">Execution Time</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">T<sub>1</sub></td>
+ <td colspan="1" rowspan="3">3</td>
+ <td colspan="1" rowspan="3">FULL</td>
+ <td colspan="1" rowspan="3">1</td>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="3">R<sub>1</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 0</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 9.9 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 600 * 10<sup>6</sup></td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 10 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">T<sub>2</sub></td>
+ <td colspan="1" rowspan="3">2</td>
+ <td colspan="1" rowspan="3">FULL</td>
+ <td colspan="1" rowspan="3">1</td>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="3">R<sub>2</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 20 * 10<sup>6</sup></td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 99 * 10<sup>4</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 300 * 10<sup>6</sup></td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 100 * 10<sup>4</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="9">T<sub>3</sub></td>
+ <td colspan="1" rowspan="9">3</td>
+ <td colspan="1" rowspan="9">FULL</td>
+ <td colspan="1" rowspan="9">1</td>
+ <td colspan="1" rowspan="3"/>
+ <td colspan="1" rowspan="3">R<sub>3,0</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 99 * 10<sup>4</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 100 * 10<sup>4</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="3">R<sub>3,1</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 50 * 10<sup>6</sup></td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 99 * 10<sup>5</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 500 * 10<sup>6</sup></td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 100 * 10<sup>5</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3"/>
+ <td colspan="1" rowspan="3">R<sub>3,2</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 99 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 100 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">T<sub>4</sub></td>
+ <td colspan="1" rowspan="3">1</td>
+ <td colspan="1" rowspan="3">FULL</td>
+ <td colspan="1" rowspan="3">1</td>
+ <td colspan="1" rowspan="1"/>
+ <td colspan="1" rowspan="3">R<sub>4</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Inter-process Activation</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 99 * 10<sup>5</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1"/>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 100 * 10<sup>5</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">T<sub>5</sub></td>
+ <td colspan="1" rowspan="3">5</td>
+ <td colspan="1" rowspan="3">FULL</td>
+ <td colspan="1" rowspan="3">1</td>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="3">R<sub>5</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 0</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 99 * 10<sup>5</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 100 * 10<sup>6</sup></td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 100 * 10<sup>5</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="15">T<sub>6</sub></td>
+ <td colspan="1" rowspan="15">4</td>
+ <td colspan="1" rowspan="15">FULL</td>
+ <td colspan="1" rowspan="15">1</td>
+ <td colspan="1" rowspan="6"/>
+ <td colspan="1" rowspan="3">R<sub>6,x</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 99</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 100</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">R<sub>6,1</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 990</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 1 * 10<sup>3</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="3">R<sub>6,2</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 15 * 10<sup>6</sup></td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 49.5 * 10<sup>3</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 60 * 10<sup>6</sup></td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 50 * 10<sup>3</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="6"/>
+ <td colspan="1" rowspan="3">R<sub>6,3</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 990 * 10<sup>3</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 1 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">R<sub>6,4</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 49.5 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 50 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="6">T<sub>7</sub></td>
+ <td colspan="1" rowspan="6">0</td>
+ <td colspan="1" rowspan="6">FULL</td>
+ <td colspan="1" rowspan="6">1</td>
+ <td colspan="1" rowspan="2"/>
+ <td colspan="1" rowspan="3">R<sub>7,1</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 59.4 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 60 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 0</td>
+ <td colspan="1" rowspan="3">R<sub>7,2</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 1000</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 19.8 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1"/>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 20 * 10<sup>6</sup></td>
+ </tr>
+ </table>
+ <p>In order to show the impact of changes to the model, the following consecutive variations are made to the model:</p>
+ <dl>
+ <dt>
+ <b>1) Initial Task Set</b>
+ </dt>
+ <dd>For this variation, the tasks T<sub>1</sub>, T<sub>2</sub>, T<sub>3</sub>, and T<sub>4</sub> of the table above are active.
+ <br>
+ <img src="images/modeling_example_feedback_loop_1.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>2) Increase of Task Set Size I</b>
+ </dt>
+ <dd>For this variation, the Tasks T<sub>1</sub>, T<sub>2</sub>, T<sub>3</sub>, T<sub>4</sub>, T<sub>5</sub>, and T<sub>6</sub> are active. That way the utilization of the system is increased.
+ <br>
+ <img src="images/modeling_example_feedback_loop_2.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>3) Increase of Task Set Size II</b>
+ </dt>
+ <dd>As from this variation on, all tasks are active. That way the utilization of the system is increased.
+ <br>
+ <img src="images/modeling_example_feedback_loop_3.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>4) Inter-process Activation</b>
+ </dt>
+ <dd>As from this variation on, task T<sub>2</sub> gets activated by an inter-process activation from task T<sub>1</sub>, task T<sub>3</sub> by an inter-process activation from task T<sub>2</sub>, and task T<sub>6</sub> by an inter-process activation from task T<sub>5</sub> instead of being activated periodically. The inter-process activation in task T<sub>1</sub> is performed right after the message
+ <em>u</em> is written in T<sub>2</sub> and consequently before the runnable R<sub>1</sub> is called, in task T<sub>2</sub> respectively right before task T<sub>4</sub> is activated, and in task T<sub>5</sub> task T<sub>6</sub> is called right before runnable R<sub>5</sub>. That way, a direct connection between these tasks is established.
+ <br>
+ <img src="images/modeling_example_feedback_loop_4.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>5) Event Frequency Increase</b>
+ </dt>
+ <dd>As from this variation on, the periodicity of the tasks T<sub>1</sub>, T<sub>5</sub>, and T<sub>7</sub> are shortened. For task T<sub>1</sub>, the value for the period is set to 450 * 10<sup>6</sup>, the task T<sub>5</sub> to 60 * 10<sup>6</sup>, and for task T<sub>7</sub> to 575 * 10<sup>6</sup>. That way, the information density is increased.
+ <br>
+ <img src="images/modeling_example_feedback_loop_5.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>6) Execution Time Fluctuation</b>
+ </dt>
+ <dd>As from this variation on, the execution time distribution is widened for both tasks. Therefore, the maximum of the uniform distribution is increased by 1 percent so that the uniform distribution varies now by 2 percent. That way, the utilization of the system is increased, which results in extinct activations.
+ <br>
+ <img src="images/modeling_example_feedback_loop_6.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>7) Activation</b>
+ </dt>
+ <dd>As from this variation on, the maximum number of queued activation requests for both tasks is set to 2. That way, the problem with extinct activations resulting from the previous variation is solved.
+ <br>
+ <img src="images/modeling_example_feedback_loop_7.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>8) Accuracy in Logging of Data State I</b>
+ </dt>
+ <dd>For this variation, the data accesses in all tasks are omitted. Instead, the runnable entities R<sub>3,0</sub>, R<sub>3,1</sub>, and R<sub>3,2</sub>, are executed with a probability of 50 %, 30 %, and 20 % respectively, and the runnable entities R<sub>6,x</sub>, R<sub>6,1</sub>, R<sub>6,2</sub>, R<sub>6,3</sub>, and R<sub>6,4</sub> are executed with a probability of 15 %, 20 %, 30 %, 20 %, and 15 % respectively. That way, only a limited insight into the system's runtime behavior is available.
+ <br>
+ <img src="images/modeling_example_feedback_loop_8.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>9) Accuracy in Logging of Data State II</b>
+ </dt>
+ <dd>For this variation, just task events are active. That way, only a limited insight into the system's runtime behavior is available.
+ <br>
+ <img src="images/modeling_example_feedback_loop_9.png"/>
+ </dd>
+ </dl>
+
+
+<h3><a id="section2.3.7">2.3.7 </a>Modeling Example "State Machine Feedback Loop"</h3>
+ <p>The task set of the modeling example "State Machine" is expanded further in this architecture pattern by combining the ideas behind the modeling example "State Machine" and "Feedback Loop". This means that messages are exchanged in a loop and each sender/receiver is also a state machine. To achieve this, task T<sub>1</sub> has two different internal states 0 and 1, and task T<sub>2</sub> manages three consecutive states 0, 1, and 2. The state task T<sub>1</sub> is currently in is sent via a message to task T<sub>2</sub> before runnable R<sub>1</sub> is called. If the content of the message sent from task T<sub>1</sub> is 1, task T<sub>2</sub> increases its internal state, e.g. from state 0 to 1, and if it is 0, task T<sub>2</sub> decreases its internal state accordingly. Then, depending on the state task T<sub>2</sub> is currently in, the according runnable (R<sub>2,0</sub> for state 0, etc.) is executed. If the maximum or minimum state of task T<sub>2</sub> is reached but the received message from task T<sub>1</sub> tells task T<sub>2</sub> to further increase or respectively decrease its internal state, task T<sub>2</sub> sends a message to task T<sub>1</sub>. This message then causes task T<sub>1</sub> to toggle its internal state which consequently results in a switch from increasing to decreasing or vice versa. In addition to this state machine feedback loop, other system architecture patterns are added to be executed concurrently in order to increase the complexity. The tasks T<sub>3</sub> and T<sub>4</sub> represent a client-server without reply and are equal to the tasks T<sub>1</sub> and T<sub>2</sub> respectively as described above in the modeling example "Client-Server without Reply". T<sub>5</sub> is a periodically activated task without any communication and identical to task T<sub>7</sub> in the modeling example "Purely Periodic without Communication".</p>
+ <p>
+ <img src="images/modeling_example_state_machine_feedback_loop.png"/>
+ </p>
+ <p>The table below gives a detailed specification of the tasks and their parameters. The tasks are scheduled according fixed-priority, preemptive scheduling and if not indicated otherwise, all events are active in order to get a detailed insight into the system's behavior.</p>
+ <table class="classic" style="text-align:center; background:#f8f8f8">
+ <tr style="background:#eee">
+ <th colspan="1" rowspan="1">Task</th>
+ <th colspan="1" rowspan="1">Priority</th>
+ <th colspan="1" rowspan="1">Preemption</th>
+ <th colspan="1" rowspan="1">Multiple Task Activation Limit</th>
+ <th colspan="1" rowspan="1">Activation</th>
+ <th colspan="2" rowspan="1">Execution Time</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">T<sub>1</sub></td>
+ <td colspan="1" rowspan="3">2</td>
+ <td colspan="1" rowspan="3">FULL</td>
+ <td colspan="1" rowspan="3">1</td>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="3">R<sub>1</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 0</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 9.9 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 300 * 10<sup>6</sup></td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 10 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="9">T<sub>2</sub></td>
+ <td colspan="1" rowspan="9">1</td>
+ <td colspan="1" rowspan="9">FULL</td>
+ <td colspan="1" rowspan="9">1</td>
+ <td colspan="1" rowspan="3"/>
+ <td colspan="1" rowspan="3">R<sub>2,0</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 99</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 100</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="3">R<sub>2,1</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 15 * 10<sup>6</sup></td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 99 * 10<sup>3</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 250 * 10<sup>6</sup></td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 100 * 10<sup>3</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3"/>
+ <td colspan="1" rowspan="3">R<sub>2,2</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 49.5 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 50 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">T<sub>3</sub></td>
+ <td colspan="1" rowspan="3">4</td>
+ <td colspan="1" rowspan="3">FULL</td>
+ <td colspan="1" rowspan="3">1</td>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="3">R<sub>3</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 0</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 99 * 10<sup>5</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 100 * 10<sup>6</sup></td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 100 * 10<sup>5</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="15">T<sub>4</sub></td>
+ <td colspan="1" rowspan="15">3</td>
+ <td colspan="1" rowspan="15">FULL</td>
+ <td colspan="1" rowspan="15">1</td>
+ <td colspan="1" rowspan="6"/>
+ <td colspan="1" rowspan="3">R<sub>4,x</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 99</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 100</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">R<sub>4,1</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 990</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 1 * 10<sup>3</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="3">R<sub>4,2</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 15 * 10<sup>6</sup></td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 49.5 * 10<sup>3</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 60 * 10<sup>6</sup></td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 50 * 10<sup>3</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="6"/>
+ <td colspan="1" rowspan="3">R<sub>4,3</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 990 * 10<sup>3</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 1 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">R<sub>4,4</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 49.5 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 50 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="6">T<sub>5</sub></td>
+ <td colspan="1" rowspan="6">0</td>
+ <td colspan="1" rowspan="6">FULL</td>
+ <td colspan="1" rowspan="6">1</td>
+ <td colspan="1" rowspan="2"/>
+ <td colspan="1" rowspan="3">R<sub>5,1</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 59.4 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 60 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Offset = 0</td>
+ <td colspan="1" rowspan="3">R<sub>5,2</sub></td>
+ <td colspan="1" rowspan="1">Uniform</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="text-align: left;">Recurrence = 1000</td>
+ <td colspan="1" rowspan="1" style="text-align: left;">Min = 19.8 * 10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1"/>
+ <td colspan="1" rowspan="1" style="text-align: left;">Max = 20 * 10<sup>6</sup></td>
+ </tr>
+ </table>
+ <p>In order to show the impact of changes to the model, the following consecutive variations are made to the model:</p>
+ <dl>
+ <dt>
+ <b>1) Initial Task Set</b>
+ </dt>
+ <dd>For this variation, the tasks T<sub>1</sub>, and T<sub>2</sub> of the table above are active.
+ <br>
+ <img src="images/modeling_example_state_machine_feedback_loop_1.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>2) Increase of Task Set Size I</b>
+ </dt>
+ <dd>For this variation, the tasks T<sub>1</sub>, T<sub>2</sub>, T<sub>3</sub>, and T<sub>4</sub> are active. That way the utilization of the system is increased.
+ <br>
+ <img src="images/modeling_example_state_machine_feedback_loop_2.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>3) Increase of Task Set Size II</b>
+ </dt>
+ <dd>As from this variation on, all tasks are active. That way the utilization of the system is increased.
+ <br>
+ <img src="images/modeling_example_state_machine_feedback_loop_3.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>4) Inter-process Activation</b>
+ </dt>
+ <dd>As from this variation on, task T<sub>2</sub> gets activated by an inter-process activation from task T<sub>1</sub>, and task T<sub>4</sub> by an inter-process activation from task T<sub>3</sub> instead of being activated periodically. The inter-process activation in task T<sub>1</sub> is performed right after the message to task T<sub>2</sub> is written and consequently before the runnable R<sub>1</sub> is called, and in task T<sub>3</sub> task T<sub>4</sub> is called right before runnable R<sub>3</sub>. That way, a direct connection between these tasks is established.
+ <br>
+ <img src="images/modeling_example_state_machine_feedback_loop_4.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>5) Event Frequency Increase</b>
+ </dt>
+ <dd>As from this variation on, the periodicity of the tasks T<sub>1</sub>, T<sub>3</sub>, and T<sub>5</sub> are shortened. For task T<sub>1</sub>, the value for the period is set to 220 * 10<sup>6</sup>, the task T<sub>3</sub> to 50 * 10<sup>6</sup>, and for task T<sub>5</sub> to 500 * 10<sup>6</sup>. That way, the information density is increased.
+ <br>
+ <img src="images/modeling_example_state_machine_feedback_loop_5.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>6) Execution Time Fluctuation</b>
+ </dt>
+ <dd>As from this variation on, the execution time distribution is widened for both tasks. Therefore, the maximum of the uniform distribution is increased by 1 percent so that the uniform distribution varies now by 2 percent. That way, the utilization of the system is increased, which results in extinct activations.
+ <br>
+ <img src="images/modeling_example_state_machine_feedback_loop_6.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>7) Activation</b>
+ </dt>
+ <dd>As from this variation on, the maximum number of queued activation requests for both tasks is set to 2. That way, the problem with extinct activations resulting from the previous variation is solved.
+ <br>
+ <img src="images/modeling_example_state_machine_feedback_loop_7.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>8) Accuracy in Logging of Data State I</b>
+ </dt>
+ <dd>For this variation, the data accesses in all tasks are omitted. Instead, all runnablea representing a state are executed equally random, meaning the runnables R<sub>2,0</sub>, R<sub>2,1</sub>, and R<sub>2,2</sub> are each executed with a probability of 33 %, and the runnables R<sub>4,x</sub>, R<sub>4,1</sub>, R<sub>4,2</sub>, R<sub>4,3</sub>, and R<sub>4,4</sub> each with a probability of 20 %. That way, only a limited insight into the system's runtime behavior is available.
+ <br>
+ <img src="images/modeling_example_state_machine_feedback_loop_8.png"/>
+ </dd>
+ </dl>
+ <dl>
+ <dt>
+ <b>9) Accuracy in Logging of Data State II</b>
+ </dt>
+ <dd>For this variation, just task events are active. That way, only a limited insight into the system's runtime behavior is available.
+ <br>
+ <img src="images/modeling_example_state_machine_feedback_loop_9.png"/>
+ </dd>
+ </dl>
+
+
+<h3><a id="section2.3.8">2.3.8 </a>Modeling Examples "Scheduler"</h3>
+ <p>The following elements are used to illustrate the structure of the example schedulers:</p>
+ <p>
+ <img src="images/modeling_example_scheduler_legend.png"/>
+ </p>
+
+
+<h4><a id="section2.3.8.1"></a>Hierarchical Scheduler</h4>
+ <p>In this example the main scheduler realizes a
+ <strong>Priority Round Robin</strong> strategy. The main scheduler works as a global scheduler that schedules subsystems like virtual machines or hypervisor partitions. Each partition realizes an
+ <strong>OSEK</strong> scheduling system. In this case the main scheduler is responsible for both cores but only running on one core. Each
+ <strong>OSEK</strong> subsystem is responsible for exactly one core but only if the main scheduler grants the core usage. The
+ <strong>OSEK</strong> subsystems then decide on a FPP basis, which task can run. The coreAffinity for the tasks is not needed, since their scheduler is only responsible for one core.
+ </p>
+ <p>
+ <img src="images/modeling_example_scheduler_hierarchical.png"/>
+ </p>
+
+
+<h4><a id="section2.3.8.2"></a>Partitioned_FPP Scheduler</h4>
+ <p>In this example a custom FPP scheduler named
+ <strong>Partitioned_FPP</strong> is representing a global scheduler. It schedules tasks on a FPP basis but with the additional constraint that it's group must have budget left (has similarities to QNX's adaptive partitioned scheduling). The scheduler "Grouping" is only there to assign budgets to a logical task group and define no mapping or responsibility at all. Therefore in the taskAllocation only priority and coreAffinity are specified. The coreAffinity of tasks in the same group can differ, even task migration is possible if a task's affinity is
+ <strong>CoreA</strong> as well as
+ <strong>CoreB</strong>.
+ </p>
+ <p>
+ <img src="images/modeling_example_scheduler_partitioned_fpp.png"/>
+ </p>
+
+
+<h3><a id="section2.3.9">2.3.9 </a>Democar Example</h3>
+ <p>The so called Democar model presented in the AMALTHEA example files describe a simple engine management system.</p>
+
+
+<h4><a id="section2.3.9.1"></a>Origin</h4>
+ <p>The Democar example is loosely based on the publicly available information taken from</p>
+ <blockquote>
+ <p>
+ <br>
+ <strong>A Timing Model for Real-Time Control-Systems and its Application</strong>
+ <br>
+ <strong>on Simulation and Monitoring of AUTOSAR Systems</strong>
+ <br>
+ <em>Author: Patrick Frey</em>
+ </p>
+ </blockquote>
+ <p>A version of the dissertation can be downloaded from University of Ulm:
+ <a href="https://oparu.uni-ulm.de/xmlui/handle/123456789/1770">pdf</a>.
+ </p>
+
+
+<h4><a id="section2.3.9.2"></a>Files</h4>
+ <p>
+ <strong>AMALTHEA_Democar.amxmi</strong>
+ <br>contains the complete model, consisting of a hardware model, a model of the operating system, a stimulation model and a model that describes the software system.
+ </p>
+ <p>
+ <strong>Amalthea_ArExampleEngine.atdb</strong>
+ <br>is an AMALTHEA Trace Database and it contains a trace that is the result of a simulation of this example.
+ </p>
+
+
+<h3><a id="section2.3.10">2.3.10 </a>HwModel Example</h3>
+ <p>This example contains two simple hardware models:</p>
+ <p>
+ <strong>Example 1: Simple_ECU</strong>
+ </p>
+ <p>
+ <img class="scale" src="images/example_hw_example_1_diagram.png"/>
+ </p>
+ <p>The example shows a single structure with two identical cores with such an Instruction per cycle feature. The model includes only one frequency domain and no power domain. Each core is connected to all three different memory units via a
+ <em>HwAccessElement</em> with read and write latencies. The memory components include an access latency. This means the total latency for a read and a write access are calculated in the following way:
+ </p>
+ <p>
+ <em>TotalReadLatency = readLatency + accessLatency</em>
+ <br>
+ <em>TotalWriteLatency = writeLatency + accessLatency</em>
+ </p>
+ <p>This example shows a very simple hardware modeling approach where no interconnects and ports are necessary. Such a model can be used in a very early design phase where only rough estimations or a limited amount of informations about the system are available.</p>
+ <p>
+ <img src="images/example_hw_example_1_editor.png"/>
+ </p>
+ <p>
+ <strong>Example 2: Simple_E_E_Architecture</strong>
+ </p>
+ <p>
+ <img class="scale" src="images/example_hw_example_2_diagram.png"/>
+ </p>
+ <p>The second example shows a simple E/E-Architecture out of two identical ECUs. Each ECU contains two cores, one interconnect and a memory component. Both ECUs are connected via a CAN-Bus. In this example both possibilities for a
+ <em>HwAccessElement</em> are shown. The local memory is just connected with read and write latencies and the external memory of the other ECU is connected with the help of a
+ <em>HwAccessPath</em>. To use access paths hardware ports and connections between those ports are mandatory. The access paths itself is an ordered list of elements which are used for the connection. As an example for the access path between Core1EC1 and MainMemEC2 following access path elements are referred:
+ </p>
+ <p>con1 -&gt; internalCan_ECU1 -&gt; con4 -&gt; con9 -&gt; CAN -&gt; con10 -&gt; con8 -&gt; InterconnectEC2 -&gt; con7.</p>
+ <p>That means the complete access paths includes:</p>
+ <ul>
+ <li>3 x ConnectionHandler</li>
+ <li>6 x HwConnections</li>
+ </ul>
+ <p>The latency in this case is the sum of all elements of the path plus the access latency of the memory. However latencies at connections are usually only used to account an offset for a specific component. In case a data rate is used the maximum data rate is limited by the lowest data rate in the path. In case of a
+ <em>ConnectionHandler</em> the data rate is usually shared between different accesses.
+ <br>The hierarchical ports from both ECUs to connect the CAN Bus with the ECUs as block boxes are not mandatory but recommended. This concept of hierarchical ports increases the number of HwConnections but allows also the structuring of all internal modules within a HwStructure and only connect the hierarchical ports with the rest of the system.
+ </p>
+ <p>
+ <img src="images/example_hw_example_2_editor.png"/>
+ </p>
+
+
+<h2><a id="section2.4">2.4 </a>Tutorials</h2>
+
+
+<h3><a id="section2.4.1">2.4.1 </a>AMALTHEA Trace Database (ATDB) Import Example</h3>
+ <p>The following section describes how to use the information contained within an AMALTHEA Trace Database (ATDB) to create a model.</p>
+ <p>
+ <strong>Step 1</strong>
+ </p>
+ <p>
+ <img src="images/amalthea_trace_db_example.png"/>
+ </p>
+ <p>The figure above shows content of "Amalthea_ArExampleEngine.atdb", an AMALTHEA Trace database provided with the "Democar Example".
+ <br>To get this file create a new example project (see "Creating an example"), based on the "Democar Example".
+ </p>
+ <p>
+ <strong>Step 2</strong>
+ </p>
+ <p>
+ <img src="images/amalthea_import_options.png"/>
+ </p>
+ <p>Right-click on the project folder "org.eclipse.app4mc.amalthea.example.democar" or any other. You will see several possible options. In that option menu press "Import..." then.
+ <br>This will open a dialogue where the different import options available are listed. Open the folder called "AMALTHEA" by clicking on cross next to the title. This is shown in the figure above.
+ </p>
+ <p>
+ <strong>Step 3</strong>
+ </p>
+ <p>
+ <img src="images/atdb_import_dialogue.png"/>
+ </p>
+ <p>Next, choose mark the option "From AMALTHEA Trace DB" by clicking on it and proceed to the next page by either double-clicking the option name or by pressing the "Next" button. There you are prompted to enter the location of the ATDB file you want to import. Click the upper "Browse..." button to navigate your file system and select the wanted file. If you want to change the target project the model will be created in press the lower "Browse..." button and make your choice. The figure above shows an example input.</p>
+ <p>
+ <strong>Step 4</strong>
+ </p>
+ <p>
+ <img src="images/atdb_import_result.png"/>
+ </p>
+ <p>After you have made all required inputs, click on "Finish". This will start the analysis of the database. Once the model creation is done the dialogue will close and the newly created amxmi file opened on the AMALTHEA Model editor as shown in the figure above.</p>
+
+
+<h2><a id="section2.5">2.5 </a>Editors / Viewers</h2>
+
+
+<h3><a id="section2.5.1">2.5.1 </a>AMALTHEA Trace Database Metrics Viewer</h3>
+ <p>This is a simple viewer that shows how to access the AMALTHEA trace database.</p>
+ <p>
+ <img src="images/metric-viewer_open.png"/>
+ </p>
+ <p>
+ <img src="images/metric-viewer_table.png"/>
+ </p>
+
+
+<h3><a id="section2.5.2">2.5.2 </a>Sirius Viewer</h3>
+ <p>Basic graphical viewers are realized using
+ <a href="https://www.eclipse.org/sirius/">Sirius</a>.
+ </p>
+ <p>The following viewers are treated as a POC (Proof of concept) and are not final.
+ <br>They can be extended and further developed to show additional parts of the model.
+ </p>
+
+
+<h4><a id="section2.5.2.1"></a>Activate capabilities for project</h4>
+ <p>The following steps will activate the Sirius feature and AMALTHEA viewpoints:</p>
+ <p>To use Sirius, projects needs to have the
+ <i>Modeling Feature</i> enabled. This can be done by right clicking on the project and select
+ <strong>Configure – Convert to Modeling Project</strong>. Note that a new file
+ <i>representations.aird</i> is created at top level of the project. This file is containing the user created diagrams.
+ </p>
+ <p>
+ <img src="images/sirius_convert_project.png"/>
+ </p>
+ <p>Activate the AMALTHEA viewpoint by right click on the project and select
+ <strong>Viewpoint Selection</strong>.
+ </p>
+ <p>
+ <img src="images/sirius_viewpoints_selection.png"/>
+ </p>
+ <p>
+ <b>Note:</b> Using one of the available commands to open a view using a right click on an element automatically adds the Modeling Nature and selects the available AMALTHEA viewpoint.
+ </p>
+
+
+<h4><a id="section2.5.2.2"></a>Available Diagrams</h4>
+
+
+<h5><a id="section2.5.2.2.1"></a>Task View</h5>
+ <p>The current version of the Task View shows the Task as a container with the included Runnables.</p>
+ <p>Open/Create a view for a
+ <i>Task</i> element by right click on it and select
+ <i>Task View</i>.
+ </p>
+ <p>
+ <img src="images/sirius_task_view_create.png"/>
+ </p>
+ <p>A new diagram is shown based on the given
+ <i>Task</i> element.
+ </p>
+ <p>
+ <img src="images/sirius_task_view_1.png"/>
+ </p>
+
+
+<h6><a id="section2.5.2.2.1.1"></a>Communication Layer</h6>
+ <p>The Communication Layer shows direct dependencies between
+ <i>Runnables</i>. Therefore the following requirement must be fulfilled:
+ </p>
+ <ol>
+ <li>Runnable R1 writes Label L1</li>
+ <li>Runnable R2 reads Label L1</li>
+ </ol>
+ <p>Enable it through the Layers option menu.</p>
+ <p>
+ <img src="images/sirius_task_view_comm_layer_enable.png"/>
+ </p>
+ <p>In this sample some of the available communications are fulfilling this requirement.</p>
+ <p>
+ <img src="images/sirius_task_view_comm_layer_show1.png"/>
+ </p>
+
+
+<h6><a id="section2.5.2.2.1.2"></a>Label Layer</h6>
+ <p>The Label Layer shows all Read/Write dependencies between
+ <i>Runnables</i> and
+ <i>Labels</i>.
+ </p>
+ <p>Enable it through the Layers option menu.</p>
+ <p>
+ <img src="images/sirius_task_view_label_layer_enable.png"/>
+ </p>
+ <p>After some arrangement it can look like the following:</p>
+ <p>
+ <img src="images/sirius_task_view_label_layer_show.png"/>
+ </p>
+
+
+<h5><a id="section2.5.2.2.2"></a>Label View</h5>
+ <p>The Label View shows a
+ <i>Label</i> element including read/write accesses from corresponding
+ <i>Runnables</i>.
+ </p>
+ <p>Open/Create a view for a
+ <i>Label</i> element by right click on it and select
+ <i>Label View</i>.
+ </p>
+ <p>
+ <img src="images/sirius_label_view_create.png"/>
+ </p>
+ <p>A new diagram is shown based on the given
+ <i>Label</i> element.
+ </p>
+ <p>
+ <img src="images/sirius_label_view_1.png"/>
+ </p>
+
+
+<h5><a id="section2.5.2.2.3"></a>EventChain View</h5>
+ <p>The
+ <i>EventChain</i> view is the first version to show the included
+ <i>Events</i>.
+ <br>If there is a reference to a
+ <i>RunnableEvent</i>, the corresponding
+ <i>Runnable</i> is also shown.
+ <br>This behavior can be extended also for
+ <i>Labels</i> and
+ <i>Tasks</i> for example.
+ </p>
+ <p>Open/Create a view for an
+ <i>EventChain</i> element by right click on it and select
+ <i>Event Chain View</i>.
+ </p>
+ <p>
+ <img src="images/sirius_event_chain_view_create.png"/>
+ </p>
+ <p>A new diagram is opening showing the order of the included
+ <i>Events</i>.
+ <br>If there is a
+ <i>RunnableEvent</i>, the association to the
+ <i>Runnable</i> includes the configured
+ <i>EventType</i>.
+ </p>
+ <p>
+ <img src="images/sirius_event_chain_view_show.png"/>
+ </p>
+
+
+<h5><a id="section2.5.2.2.4"></a>Tasks View</h5>
+ <p>The
+ <i>Tasks</i> view is in general the same view as the already mentioned
+ <i>Task</i> view above with the advantage to get an overview about all included
+ <i>Tasks</i> of a Software model.
+ </p>
+ <p>To open/create a Tasks view it is needed to switch to the Sirius perspective.</p>
+ <ul>
+ <li>This can be done by
+ <b>Window – Perspective – Open Perspective – Other</b> and select then Sirius.
+ </li>
+ <li>On the left side inside of the Model Explorer go to an AMALTHEA model, expand it and do a right click on the
+ <i>Software</i> model.
+ </li>
+ <li>Select
+ <b>New Representation – new Tasks Overview</b> to create a new diagram.
+ </li>
+ <li>Change the name if needed and click on ok.</li>
+ </ul>
+ <p>The same additional options are available as in the normal
+ <i>Task</i> view like the
+ <i>Label Layer</i> and
+ <i>Communication Layer</i>.
+ </p>
+ <p>
+ <img src="images/sirius_tasks_view_create.png"/>
+ </p>
+ <p>
+ <img src="images/sirius_tasks_view_show.png"/>
+ </p>
+
+
+<h5><a id="section2.5.2.2.5"></a>Mapping View</h5>
+ <p>The
+ <i>Mapping</i> view gives an overview of the relation between
+ <i>Cores</i>,
+ <i>Schedulers</i> and
+ <i>Tasks</i>, which is defined in the
+ <i>Mapping Model</i> of AMALTHEA.
+ </p>
+ <p>To open/create a Tasks view it is needed to switch to the Sirius perspective.</p>
+ <ul>
+ <li>This can be done by
+ <b>Window – Perspective – Open Perspective – Other</b> and select then Sirius.
+ </li>
+ <li>On the left side inside of the Model Explorer go to an AMALTHEA model, expand it and do a right click on the
+ <i>Mapping</i> model.
+ </li>
+ <li>Select
+ <b>New Representation – new Tasks Overview</b> to create a new diagram.
+ </li>
+ <li>Change the name if needed and click on ok.</li>
+ </ul>
+ <p>
+ <img src="images/sirius_mapping_view_create.png"/>
+ </p>
+ <p>
+ <img src="images/sirius_mapping_view_show.png"/>
+ </p>
+
+
+<h2><a id="section2.6">2.6 </a>Model Validation</h2>
+
+
+<h3><a id="section2.6.1">2.6.1 </a>Usage of Check-based Validation</h3>
+ <p>The AMALTHEA validation can be triggered by right clicking a model element in the left Model Explorer View and choose in the context menu Validate – Check-based Validation.</p>
+ <p>
+ <img class="gray" src="images/sphinx_validation_trigger_command.png"/>
+ </p>
+ <p>All AMALTHEA sub elements of the chosen element are then included for the validation. In the next window the catalog appears allowing the selection of specific validation checks based on your selected model. Button "Select All" will select all listed validation checks for execution. Each entry of the catalog is called
+ <i>Category</i> which may contain several validation checks (i.e. constraints). The simplest way is to define a 1:1 relationship between category and constraint.
+ </p>
+ <p>
+ <img src="images/sphinx_validation_selection.png"/>
+ </p>
+ <p>If an error is found, it is shown in the Problems view of Eclipse. A simple double click on the error will lead you to the affected elements in the AMALTHEA model. Sphinx validation distinguishes between three error types:
+ <i>errors</i>,
+ <i>warnings</i> and
+ <i>info</i>.
+ </p>
+ <p>
+ <img class="gray" src="images/sphinx_validation_results.png"/>
+ </p>
+
+
+<h3><a id="section2.6.2">2.6.2 </a>Available Validations</h3>
+ <p>The plugin
+ <i>org.eclipse.app4mc.amalthea.validation</i> contains several validators and constraints (i.e. checks) for various model types of AMALTHEA.
+ </p>
+
+
+<h4><a id="section2.6.2.1"></a>Basic Check Validator</h4>
+ <p>Basic checks which cannot be assigned to a specific AMALTHEA model are summarized. Responsible implementation for this validation is the class
+ <code>org.eclipse.app4mc.amalthea.validation.checks.BasicCheckValidator</code>.
+ </p>
+ <p>
+ <b>Missing Referable Name</b>
+ <br>Checks the name of all objects that are instances of
+ <code>IReferable</code>. The name is used to refer to objects in the AMALTHEA model, therefore missing names are handled as an
+ <b>
+ <i>error</i>
+ </b>.
+ </p>
+ <p>
+ <b>Duplicate Unique Name</b>
+ <br>Checks the unique name of all objects that are instances of
+ <code>IReferable</code>. The unique name is used to refer to objects in the AMALTHEA model, therefore duplicates are handled as an
+ <b>
+ <i>error</i>
+ </b>.
+ </p>
+ <p>
+ <b>Undefined Unit</b>
+ <br>Checks all units:
+ <code>TimeUnit</code>,
+ <code>FrequencyUnit</code>,
+ <code>DataSizeUnit</code>,
+ <code>DataRateUnit</code>.
+ <br>If the unit is undefined, it will be handled as an
+ <b>
+ <i>error</i>
+ </b>.
+ </p>
+ <p>
+ <b>Custom Property Duplicate Key</b>
+ <br>A validation to check all custom attributes of one element. If it contains duplicate key entries, it is treated as a
+ <b>
+ <i>warning</i>
+ </b>.
+ </p>
+ <p>
+ <b>Weibull Parameters</b>
+ <br>Checks the parameters in the
+ <i>Distribution</i> of type
+ <i>WeibullEstimators</i>. The parameters must not be equal to each other, if this is the case, it will be handled as an
+ <b>
+ <i>warning</i>
+ </b>.
+ </p>
+
+
+<h4><a id="section2.6.2.2"></a>ConstraintsModel Check Validator</h4>
+ <p>Responsible implementation for this validation is the class
+ <code>org.eclipse.app4mc.amalthea.validation.checks.ConstraintsModelCheckValidator</code>.
+ </p>
+ <p>
+ <b>EventChainsConstraint</b>
+ <br>Checks for the AMALTHEA constraints model if the
+ <i>EventChains</i> are consistent regarding completeness (fully build chain) and correctness. Therefore each EventChain's stimulus/response pair is checked if events are existent and linked properly to a complete chain. An event chain of type
+ <i>SubEventChain</i> is checked for its "border" events fit to the stimulus and response event of the parent event chain. Cascades of sub events are processed recursively. A missing or wrong information in the event chain will be handled as an
+ <b>
+ <i>error</i>
+ </b>.
+ </p>
+
+
+<h4><a id="section2.6.2.3"></a>MappingModel Check Validator</h4>
+ <p>Responsible implementation for this validation is the class
+ <code>org.eclipse.app4mc.amalthea.validation.checks.MappingModelCheckValidator</code>.
+ </p>
+ <p>
+ <b>Process2Scheduler2CoreMappingConstraint</b>
+ <br>Checks for the entire AMALTHEA model instance if the mapping information are complete and correct between
+ <i>Software</i>(SW) &lt;-&gt;
+ <i>Operating System</i>(OS) &lt;-&gt;
+ <i>Software</i>(SW) model. I.e. mapping relationship {Process(SW) to Scheduler(OS) to Core(HW)}. A missing mapping information (i.e. no Entity) or unmapped Processes will be handled as an
+ <b>
+ <i>error</i>
+ </b>.
+ </p>
+
+
+<h4><a id="section2.6.2.4"></a>EventModel Check Validator</h4>
+ <p>Responsible implementation for this validation is the class
+ <code>org.eclipse.app4mc.amalthea.validation.checks.EventModelCheckValidator</code>.
+ </p>
+ <p>
+ <i>to be extended</i>
+ </p>
+
+
+<h4><a id="section2.6.2.5"></a>HardwareModel Check Validator</h4>
+ <p>Responsible implementation for this validation is the class
+ <code>org.eclipse.app4mc.amalthea.validation.checks.HardwareModelCheckValidator</code>.
+ </p>
+ <p>
+ <i>to be extended</i>
+ </p>
+
+
+<h2><a id="section2.7">2.7 </a>Model Migration</h2>
+
+
+<h3><a id="section2.7.1">2.7.1 </a>AMALTHEA Model Migration</h3>
+
+
+<h4><a id="section2.7.1.1"></a>Why model migration is required ?</h4>
+ <p>EMF based models are the instances of ECORE meta model (which is updated for each release). </p>
+ <p>As there is a tight dependency between model instance and the corresponding meta model, old EMF models can not be loaded with the newer release of meta model.</p>
+ <blockquote>
+ <p>Example : Due to the change in the namespace of the meta model, loading of model files from prior versions would fail with the latest version</p>
+ </blockquote>
+ <p>This problem can be solved by explicitly migrating the model files from the prior versions to be compatible to the latest meta model version</p>
+
+
+<h4><a id="section2.7.1.2"></a>AMALTHEA model migration</h4>
+ <p>As described above, same scenario is also applicable for AMALTHEA models as they are instances of EMF based AMALTHEA ECORE meta model.</p>
+ <p>For each release of AMALTHEA there will be changes in the meta model contents, due to this it is not possible to load models built from previous releases of AMALTHEA into latest tool distribution.</p>
+ <p>
+ <strong>Model Migration functionality</strong> is part of this distribution, using this feature it is possible to convert models from previous APP4MC releases to the ones which are compatible to the next versions of AMALTHEA meta model.
+ </p>
+ <p>
+ <em>Only forward migration of models is supported by Model Migration functionality of AMALTHEA</em>
+ </p>
+ <table>
+ <tr>
+ <th colspan="1" rowspan="1"/>
+ </tr>
+ <tr style="background:#ddd">
+ <td colspan="1" rowspan="1">
+ <b>
+ <span style="color:brown">From APP4MC 0.9.3 : migration of Amalthea models belonging to legacy versions : ITEA "1.0.3, 1.1.0, 1.1.1" is not supported.</span>
+ </b>
+ </td>
+ </tr>
+ <tr>
+ <th colspan="1" rowspan="1"/>
+ </tr>
+ <tr style="background:#ddd">
+ <td colspan="1" rowspan="1">If there are Amalthea models belonging to legacy versions ITEA "1.0.3 or 1.1.0 or 1.1.1", use one of the APP4MC version till 0.9.2 and convert the models into one of the APP4MC model version. <br> - These models can be used as input for model migration to next versions of APP4MC Amalthea model</td>
+ </tr>
+ </table>
+
+
+<h3><a id="section2.7.2">2.7.2 </a>Supported versions for model Migration</h3>
+ <p>Model migration functionality provides a possibility to migrate the models (
+ <em>created from previous releases of AMALTHEA</em> ) to the latest versions
+ </p>
+ <p>
+ <em>Only forward migration is supported</em>
+ </p>
+ <p>
+ <b>AMALTHEA meta model versions information</b>
+ </p>
+ <p>From below version, AMALTHEA meta model is a part of the official project Eclipse APP4MC ( See:
+ <a href="https://www.eclipse.org/app4mc/">www.eclipse.org/app4mc</a> )
+ </p>
+ <ul>
+ <li>0.7.0</li>
+ </ul>
+ <p>
+ <b>Model migration</b>
+ </p>
+ <p>As described above, only forward migration is supported by the AMALTHEA model migration utility.</p>
+ <p>Model migration utility migrates the specified model sequentially to the next versions (step by step) till expected version is reached.</p>
+ <table>
+ <tr>
+ <th colspan="1" rowspan="1"/>
+ </tr>
+ <tr style="background:#ddd">
+ <td colspan="1" rowspan="1">
+ <b>
+ <span style="color:brown">From APP4MC 0.9.3 : migration of Amalthea models belonging to legacy versions ITEA "1.0.3, 1.1.0, 1.1.1" is not supported.</span>
+ </b>
+ </td>
+ </tr>
+ </table>
+ <p>Below figure represents the steps involved in the migration of model from 0.7.0 version to APP4MC 0.8.1 version:</p>
+ <p>
+ <img class="scale" src="images/migration_flow.png"/>
+ </p>
+
+
+<h3><a id="section2.7.3">2.7.3 </a>Pre-requisites for AMALTHEA model migration</h3>
+
+
+<h4 id="migration-vm-args"><a id="section2.7.3.1"></a>VM arguments</h4>
+ <p>Default max heap memory (Xmx) used by the APP4MC distribution is 2 GB. In case of migrating huge models, it is recommended to increase this memory to 4 GB before invocation of "AMALTHEA Model Migration" feature</p>
+ <p>Follow the below steps to increase the heap memory setting of APP4MC :</p>
+ <ul>
+ <li>Open
+ <strong>app4mc.ini</strong> file (
+ <em>present in the location where APP4MC is installed</em>) and change the parameter -Xmx from 2g to 4g. (
+ <em>
+ <strong>Note</strong>: In case if APP4MC plugins are integrated inside custom eclipse application, then corresponding &lt;application_name&gt;.ini file -Xmx parameter should be updated as specified below
+ </em>)
+ </li>
+ </ul>
+ <img class="gray_scale" src="images/vm_arguments_configuration.png"/>
+
+
+<h4 id="migration-linked-files"><a id="section2.7.3.2"></a>Linked files in eclipse project (virtual files)</h4>
+ <p>In case you want to have linked files in eclipse project, during the drag and drop of the files select
+ <strong>"Link to files"</strong> option in
+ <em>
+ <strong>File Operation</strong>
+ </em> dialog and uncheck
+ <em>
+ <strong>create link locations relative to</strong>
+ </em> option
+ </p>
+ <img class="gray_scale" src="images/linked_files_creation.png"/>
+
+
+<h3><a id="section2.7.4">2.7.4 </a>How to invoke AMALTHEA model migration</h3>
+ <p>AMALTHEA model migration utility is developed as a eclipse plugin and it is part of APP4MC distribution (
+ <em>from release 0.7.0</em>)
+ </p>
+ <p>Model migration utility can be invoked by selecting the required models to be migrated in the UI and specifying the target AMALTHEA version to which models should be migrated</p>
+ <ul>
+ <li>
+ <b>Step 1:</b> Selection of AMALTHEA models
+ </li>
+ </ul>
+ <p>
+ <img class="gray_scale" src="images/models_selection.png"/>
+ </p>
+ <ul>
+ <li>
+ <strong>Step 2:</strong> Opening AMALTHEA Model Migration dialog and configuring migration inputs
+ </li>
+ </ul>
+ <p>On click of AMALTHEA Model Migration action, selected files are parsed and the following information is retrieved:</p>
+ <ol>
+ <li>AMALTHEA model version to which model is belonging to</li>
+ <li>Referred AMALTHEA models inside the selected model (
+ <em>i.e. case of cross document references</em>)
+ <ul>
+ <li>AMALTHEA model version to which these models are belonging to</li>
+ </ul>
+ </li>
+ </ol>
+ <p>Once the above information is successfully retrieved, following Model Migration dialog is opened:</p>
+ <p>
+ <img class="gray_scale" src="images/migration_dialog.png"/>
+ </p>
+ <p>Model Migration dialog consists of following information:</p>
+ <ol>
+ <li>Selected AMALTHEA model files : These are the models which are explicitly selected by the user</li>
+ <li>Model scope files : These are the model files which are referred in the models explicitly selected by the user <div>
+ <em>Example:</em> In the dialog shown above, mapping.amxmi is the file selected by the user, and it contains references to the model elements of : sw.amxmi, sw.amxmi-sw, default.amxmi-os. Due to this reason, all these referred models are selected implicitly for model migration <br>
+ <strong>
+ <em>Note:</em>
+ </strong> In case if the selected/referred models are having the different AMALTHEA model versions, migration can not be proceeded and the following error dialog is displayed <br>
+ <img class="gray_scale" src="images/different_model_versions.png"/> </div>
+ </li>
+ <li>Input model version : This is the AMALTHEA model version to which both selected &amp; referred models are belonging to</li>
+ <li>Output model version : This is the AMALTHEA model version to which both selected &amp; referred models should be migrated to</li>
+ <li>Output directory : This is the location where migrated AMALTHEA models should be generated.</li>
+ </ol>
+ <table>
+ <tr>
+ <th colspan="1" rowspan="1"/>
+ </tr>
+ <tr style="background:#ddd">
+ <td colspan="1" rowspan="1">
+ <b>
+ <span style="color:brown">From APP4MC 0.9.3 : migration of Amalthea models belonging to legacy versions ITEA "1.0.3, 1.1.0, 1.1.1" is not supported.</span>
+ </b>
+ </td>
+ </tr>
+ </table>
+ <ul>
+ <li>
+ <strong>Step 3:</strong> Model migration
+ </li>
+ </ul>
+ <p>Once the required parameters are configured in the model migration dialog, click on "Migrate Models" button in the dialog to invoke migration.</p>
+
+
+<h3><a id="section2.7.5">2.7.5 </a>Additional details</h3>
+ <p>For details regarding the below topics, refer to the corresponding links:</p>
+ <ol>
+ <li>
+ <a href="#meta-model-changes">How model elements are migrated across various versions ?</a>
+ </li>
+ <li>
+ <a href="#migration-vm-args">How to update max heap memory used by the application ?</a>
+ </li>
+ </ol>
+</article>
+
+
+<article>
+<h1><a id="section3">3 </a>Data Models</h1>
+
+
+<h2><a id="section3.1">3.1 </a>Model Overview</h2>
+ <p>The AMALTHEA data models are related to the activities in a typical design flow. The focus is on design, implementation and optimization of software for multicore systems. The data exchange between the activities is supported by the two main models of AMALTHEA, the System-Model and the Trace-Model.</p>
+ <p>
+ <img src="images/amalthea_models_actions.png"/>
+ </p>
+ <p>
+ <strong>Modeling</strong>
+ <br>The behavior of a component or system is often defined in the form of block diagrams or state charts. Dynamical behavior can also be formalized by differential equations that describe how the state of a system changes over time. Modeling tools like Matlab/Simulink, ASCET or Yakindu allow to simulate the model and to generate software descriptions and implementation.
+ </p>
+ <p>
+ <strong>Partitioning</strong>
+ <br>Based on the description of the software behavior (e.g. label accesses, synchronization, ...) this step identifies software units that can be executed in parallel.
+ </p>
+ <p>
+ <strong>System Modeling</strong>
+ <br>The structure of the hardware (e.g. cores, memory sizes, ...) and system constraints are added to the model.
+ <br>The constraints are limiting the possible results of the next step.
+ </p>
+ <p>
+ <strong>Optimization</strong>
+ <br>The activity of assigning executable software units to the cores and mapping data and instructions to memory sections. This step can be done manually or supported by a tool that optimizes the partitioning based on information about the software behavior (e.g. data dependencies, required synchronization, etc.).
+ </p>
+ <p>
+ <strong>Simulation / Software Execution</strong>
+ <br>In this step model-based simulation tools evaluate the timing behavior of the software.
+ <br>Typically these types of high level simulations are based on the hardware and software description of the system.
+ <br>Low level simulators (e.g. instruction set simulators) or real hardware can be used to execute existing software.
+ <br>The resulting traces provide additional data that is the basis for a more detailed analysis.
+ </p>
+ <p>A simplified picture shows the main purpose of the models.</p>
+ <p>
+ <img src="images/amalthea_models.png" style="width: 500px"/>
+ </p>
+ <p>The open AMALTHEA models allow custom tooling, interoperability of tools and the combination of different simulation or execution environments.</p>
+
+
+<h3><a id="section3.1.1">3.1.1 </a>AMALTHEA System Model</h3>
+ <p>
+ <img src="images/amalthea_system_model.png" style="width: 400px"/>
+ </p>
+ <p>The System Model contains:</p>
+ <p>
+ <strong>Hardware / ECU Description</strong>
+ <br>Hardware abstraction that includes general information about the hardware. Examples are: Number of cores, features of the cores, available memory, access times (from core x to memory y), etc.
+ </p>
+ <p>
+ <strong>SW Description</strong>
+ <br>The description contains information about the static or dynamic behavior the software. This includes: tasks, software components, interfaces, variables, types, etc. It is also possible to describe the characteristics of software functions like the access to variables (read, write, frequency) or the calls to service routines (call tree).
+ </p>
+ <p>
+ <strong>Timing Constraints</strong>
+ <br>Timing Constraints like End-to-End Delay, Latency and Synchronization can be formally written in the "TIMMO Timing Augmented Description Language" (TADL). They are derived from timing requirements or control theory.
+ </p>
+ <p>
+ <strong>Mapping Constraints</strong>
+ <br>The different cores of a typical embedded multicore ECU have different features. For optimal performance it is necessary to restrict the assignment of some software functions to e.g. cores with fastest I/O connections or the maximum clock rate. For safety reasons it is required that some functions are located on specific cores that e.g. can run in lock step mode. Constraints like this are represented in this sub model.
+ </p>
+ <p>
+ <strong>SW Mapping</strong>
+ <br>All information about the assignment of software units (e.g. tasks or runnables) to the cores and about the mapping of data and instructions to memory sections.
+ </p>
+
+
+<h3><a id="section3.1.2">3.1.2 </a>AMALTHEA Trace Model</h3>
+ <p>There is no specific EMF data model to describe event traces. The relevant events and their states are represented in the Event Model. In addition special trace formats for multicore have been specified in the AMALTHEA project and a Trace Database has been implemented. This database stores traces in a way that allows fast retrieval of the information (see the Developer Guide for a detailed description of the database structure).</p>
+
+
+<h3><a id="section3.1.3">3.1.3 </a>Structure of the model</h3>
+ <p>The definition of the AMALTHEA data model follows some basic principles:</p>
+ <ul>
+ <li>The model is defined in one package to simplify the handling (e.g. allow opposite references).</li>
+ <li>Different aspects are addressed in different logical sub models.</li>
+ <li>Existing EMF models from other Eclipse projects are reused and referenced instead of creating own definitions.</li>
+ <li>References are based on unique names within the same type of element.</li>
+ </ul>
+ <p>We also try to use cycles wherever possible and needed instead of direct time information. This has advantages in a multi-core environment, as the cores could have different clock frequencies.</p>
+ <p>The following figure shows the different logical parts of the AMALTHEA data model and how they are referencing each other. The central AMALTHEA model and common model that contains reusable elements are drawn without connections in this diagram.</p>
+ <p>
+ <img src="images/model_dependencies.png"/>
+ </p>
+
+
+<h2><a id="section3.2">3.2 </a>Model Basics</h2>
+ <p>The following classes are used all over the Amalthea model to define specific attributes of the model classes.</p>
+
+
+<h3 id="basics-custom-props"><a id="section3.2.1">3.2.1 </a>Custom Properties</h3>
+ <p>The
+ <i>CustomProperty</i> element is used to define own properties that are not (yet) available in AMALTHEA. If there is the need to extend an element or to store tool information related to processing steps,
+ <i>CustomProperties</i> can be used to store this type of information. It also provides the possibility to work with prototypical approaches that later (if established and more stable) can be integrated in the standard model.
+ </p>
+ <p>
+ <img src="images/model_common_custom_property.png"/>
+ </p>
+ <p>The elements are stored in a
+ <i>HashMap</i>. The values can be of different types as shown in the structure picture, like String, Integer, Boolean...
+ <br>In addition a
+ <i>ReferenceObject</i> is available to store own references to other
+ <i>EObject</i> elements.
+ <br>The
+ <i>ListObject</i> can be used to store multi-valued custom properties.
+ </p>
+ <p>
+ <img class="scale" src="images/model_common_custom_property_value.png"/>
+ </p>
+
+
+<h3><a id="section3.2.2">3.2.2 </a>Time (and Time Unit)</h3>
+ <p>The AMALTHEA data model includes a common element to describe time ranges in an easy way, the
+ <i>Time</i> element. The
+ <i>Time</i> class in general allows to define negative time values. If only positive values are expected the AMALTHEA validation will show a warning.
+ <br>The
+ <i>Time</i> element can be contained by any other element for specifying attributes to store time information.
+ <br>Time units are needed to describe different timing behavior and requirements, like deadlines or offsets of components.
+ <br>To support different time ranges, especially different time units, AMALTHEA predefines these types like seconds, milli-seconds, micro-seconds, nano-seconds or pico-seconds.
+ </p>
+ <p>
+ <img class="scale" src="images/model_common_time.png"/>
+ </p>
+
+
+<h3><a id="section3.2.3">3.2.3 </a>Frequency (and Frequency Unit)</h3>
+ <p>
+ <img class="scale" src="images/model_common_frequency.png"/>
+ </p>
+
+
+<h3><a id="section3.2.4">3.2.4 </a>Data Size (and Data Size Unit)</h3>
+ <p>The
+ <i>DataSize</i> (and
+ <i>DataRate</i>) definition contains units and prefixes
+ </p>
+ <ul>
+ <li>according to the SI Standard</li>
+ <li>for binary multiples</li>
+ </ul><table>
+ <tr>
+ <th colspan="1" rowspan="1" style="padding:15px">International System of Units (SI)</th>
+ <th colspan="1" rowspan="1" style="padding:15px">Prefixes for binary multiples</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1" style="vertical-align:top; padding:15px">
+ <table class="classic">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <em>
+ <strong>Name</strong>
+ </em>
+ </td>
+ <td colspan="1" rowspan="1">
+ <em>
+ <strong>Prefix</strong>
+ </em>
+ </td>
+ <td colspan="1" rowspan="1">
+ <em>
+ <strong>Factor</strong>
+ </em>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">kilo</td>
+ <td colspan="1" rowspan="1">k</td>
+ <td colspan="1" rowspan="1">10<sup>3</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">mega</td>
+ <td colspan="1" rowspan="1">M</td>
+ <td colspan="1" rowspan="1">10<sup>6</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">giga</td>
+ <td colspan="1" rowspan="1">G</td>
+ <td colspan="1" rowspan="1">10<sup>9</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">tera</td>
+ <td colspan="1" rowspan="1">T</td>
+ <td colspan="1" rowspan="1">10<sup>12</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <em>peta</em>
+ </td>
+ <td colspan="1" rowspan="1">
+ <em>P</em>
+ </td>
+ <td colspan="1" rowspan="1">
+ <em>10<sup>15</sup></em>
+ </td>
+ </tr>
+ </table></td>
+ <td colspan="1" rowspan="1" style="vertical-align:top; padding:15px">
+ <table class="classic">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <em>
+ <strong>Name</strong>
+ </em>
+ </td>
+ <td colspan="1" rowspan="1">
+ <em>
+ <strong>Prefix</strong>
+ </em>
+ </td>
+ <td colspan="1" rowspan="1">
+ <em>
+ <strong>Factor</strong>
+ </em>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">kibi</td>
+ <td colspan="1" rowspan="1">Ki</td>
+ <td colspan="1" rowspan="1">2<sup>10</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">mebi</td>
+ <td colspan="1" rowspan="1">Mi</td>
+ <td colspan="1" rowspan="1">2<sup>20</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">gibi</td>
+ <td colspan="1" rowspan="1">Gi</td>
+ <td colspan="1" rowspan="1">2<sup>30</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">tebi</td>
+ <td colspan="1" rowspan="1">Ti</td>
+ <td colspan="1" rowspan="1">2<sup>40</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">pebi</td>
+ <td colspan="1" rowspan="1">Pi</td>
+ <td colspan="1" rowspan="1">2<sup>50</sup></td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <em>exbi</em>
+ </td>
+ <td colspan="1" rowspan="1">
+ <em>Ei</em>
+ </td>
+ <td colspan="1" rowspan="1">
+ <em>2<sup>60</sup></em>
+ </td>
+ </tr>
+ </table></td>
+ </tr>
+ </table>
+ <p>The
+ <i>DataSize</i> provides convenience methods to get the size also in bit and byte.
+ <br>It is internally converted and can be retrieved in both ways.
+ </p>
+ <p>
+ <img class="scale" src="images/model_common_data_size.png"/>
+ </p>
+
+
+<h3><a id="section3.2.5">3.2.5 </a>Data Rate (and Data Rate Unit)</h3>
+ <p>
+ <img class="scale" src="images/model_common_data_rate.png"/>
+ </p>
+
+
+<h3><a id="section3.2.6">3.2.6 </a>Deviation</h3>
+ <p>Deviations used to model constant values, histograms and statistical distributions within AMALTHEA. There is a wide variety of possible use cases, where such a distribution is needed. For example, the variation in runtime of functions can be imitated. Therefore, AMALTHEA currently supports the following statistical distributions:</p>
+ <p>
+ <img class="scale" src="images/model_common_deviations_abstract.png"/>
+ </p>
+ <p>The earlier implementation used Generics to support the different use cases. To simplify the usage (via Java API and in the editor) the new implementation provides three different top level interfaces for
+ <strong>Time Deviation</strong>,
+ <strong>Discrete Value Deviation</strong> (integer values) and
+ <strong>Continuous Value Deviation</strong> (float values). They provide specialized methods to handle their values and a common interface to access minimum, maximum and average.
+ <br>The following image shows the detailed hierarchy of time deviations, the other implementations are built accordingly.
+ </p>
+ <p>
+ <img class="scale" src="images/model_common_deviations_time.png"/>
+ </p>
+
+
+<h4><a id="section3.2.6.1"></a>Boundaries</h4>
+ <p>With the
+ <i>Boundaries</i> class it is possible to define the deviation of instructions in such a way that a specific scenario is covered. The scenario is on the one hand specified by the minimum and maximum value between which the instructions vary. On the other hand, the
+ <i>Sampling Type</i> specifies the specific scenario that is covered. The following sampling types are available which are visualised in the figures below:
+ </p>
+ <dl>
+ <dt>BestCase</dt>
+ <dd>Defines the scenario in which most instances should have runtimes close to the set minimum runtime, but still should consider some more time-consuming outliers up to the set maximum.</dd>
+ <dt>WorstCase</dt>
+ <dd>Defines the scenario in which most instances should have runtimes close to the set maximum runtime, but still should consider some less time-consuming outliers down to the set minimum.</dd>
+ <dt>AverageCase</dt>
+ <dd>Defines the scenario in which most instances should have runtimes close to the middle between the set minimum and maximum, but still should consider some less and more time-consuming outliers down to the set minimum or up to the set maximum respectively.</dd>
+ <dt>CornerCase</dt>
+ <dd>Defines the scenario in which most instances should have runtimes close to the set minimum and maximum runtime, but still should consider some other time-consuming outliers between those two.</dd>
+ <dt>Uniform</dt>
+ <dd>Defines the scenario in which all instances should have runtimes that are uniformly distributed between the set minimum and maximum.</dd>
+ </dl>
+ <p>
+ <img src="images/model_common_deviation_boundaries_1.png"/>
+ </p>
+ <p>
+ <img src="images/model_common_deviation_boundaries_2.png"/>
+ </p>
+
+
+<h4><a id="section3.2.6.2"></a>Uniform Distribution</h4>
+ <p>The uniform distribution is a statistical distribution where the values between the stated lower and upper bound are equally likely to be observed.</p>
+ <p>
+ <img src="images/model_common_deviation_uniform.png"/>
+ </p>
+
+
+<h4><a id="section3.2.6.3"></a>Gaussian/Normal Distribution</h4>
+ <p>The Gaussian/normal distribution is a statistical distribution where the values decrease symmetrically. The maximum value and thus its location is thereby stated by the mean and the rate of decrease is defined by its standard deviation. Since the curves approach zero on either side, an additional upper and lower bound can be added to constraint the values.</p>
+ <p>
+ <img src="images/model_common_deviation_normal.png"/>
+ </p>
+
+
+<h4><a id="section3.2.6.4"></a>Beta Distribution</h4>
+ <p>The Beta distribution is a statistical distribution whose shape is defined by alpha &gt; 0 and beta &gt; 0. That way, the Beta distribution can also be used to model other distributions like for example uniform, normal, or Bernoulli distribution. Since the curves can approach zero or infinity on either side, an additional upper and lower bound can be added to constraint the values.</p>
+ <p>
+ <img src="images/model_common_deviation_beta.png"/>
+ </p>
+
+
+<h4><a id="section3.2.6.5"></a>Weibull Distribution</h4>
+ <p>The Weibull distribution is a statistical distribution whose shape is mathematically defined by kappa &gt; 0 and the scale of the distribution by lambda &gt; 0. In the model, it is parameterized using the mean value, the lower and upper bound, and the probability that a real-valued random variable of that distribution will not take a value less than or equal to a specific value. To calculate the scale and shape parameter for the Weibull distribution from the model parameters, the equation of the mean (see
+ <a href="https://en.wikipedia.org/wiki/Weibull_distribution)">Weibull distribution – Wikipedia</a> is solved for the scale parameter, first. Then, the resulting equation for lambda is plugged into the equation of the cumulative distribution function (CDF) for the Weibull distribution. Finally, the lower and upper bound allow to shift this function and the remaining unknown shape parameter in the equation is numerically approximated until the value of the parameter that constraints the distribution regarding the per mill of remaining values is reached.
+ </p>
+ <p>
+ <img src="images/model_common_deviation_weibull.png"/>
+ </p>
+
+
+<h4><a id="section3.2.6.6"></a>Histogram</h4>
+ <p>A histogram represents a distribution containing a limited number of entries (e.g. extracted from a trace). Each entry thereby is an
+ <i>Interval</i> with the extra attribute
+ <i>occurrences</i> which holds the number instances within the interval. The intervals do not have to cover a continuous range nor do they need to have the same interval size. Histograms are useful if there is a limited number of possibilities of valuations, which covers most practical systems. See the following figure for an example of two runnables having a time histogram deviation of their execution times.
+ </p>
+ <p>
+ <img src="images/model_common_deviation_time_histogram.png"/>
+ </p>
+
+
+<h3><a id="section3.2.7">3.2.7 </a>Statistic Elements</h3>
+ <p>The contained elements are representing statistical values.
+ <br>The values can be set either with a min, avg and max representation using the
+ <i>MinAvgMaxStatistic</i> element.
+ <br>The other possibility is to set a single value using the
+ <i>SingleValueStatistic</i> element.
+ <br>The minimum and maximum values are set as a normal
+ <i>int</i> value, the average the single value as
+ <i>float</i>.
+ </p>
+ <p>
+ <img src="images/model_common_statistic.png"/>
+ </p>
+
+
+<h3 id="basics-ticks"><a id="section3.2.8">3.2.8 </a>Ticks</h3>
+ <p>Ticks are used to express execution times in a basic way. The number of ticks characterizes the amount of computation that is necessary to execute e.g. a
+ <i>Runnable</i>. The corresponding execution time can be easily calculated if the frequency of the executing
+ <i>ProcessingUnit</i> (PU) is known.The corresponding execution time can be easily calculated if the frequency of the executing
+ <i>ProcessingUnit</i> (PU) is knownexecution time can be easily calculated if the frequency of the executing
+ <i>ProcessingUnit</i> (PU) is known. Depending on the capabilities of a PU the time to execute such an element will differ. If necessary the fundamentally different numbers for specific types of PUs can be stored as extended values in a map.
+ </p>
+ <p>In the next picture
+ <i>Ticks</i> are shown in more detail.
+ </p>
+ <p>
+ <img src="images/model_common_ticks.png"/>
+ </p>
+ <table class="minimal" style="padding:10px; border:1px solid black; background:#f8f8f8">
+ <tr>
+ <th colspan="1" rowspan="1">Name</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>default</i>
+ </td>
+ <td colspan="1" rowspan="1">The default number of ticks. This value is used if (1) the executing PU is unknown or (2) no extended entry is available for the PU.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>extended</i>
+ </td>
+ <td colspan="1" rowspan="1">Possibility to store a PU-specific number of ticks.</td>
+ </tr>
+ </table>
+
+
+<h3><a id="section3.2.9">3.2.9 </a>Counters</h3>
+ <p>The
+ <i>Counter</i> element describes an activation of a target element that happens only every n<sup>th</sup> time.
+ </p>
+ <table class="minimal" style="padding:10px; border:1px solid black; background:#f8f8f8">
+ <tr>
+ <th colspan="1" rowspan="1">Name</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>prescaler</i>
+ </td>
+ <td colspan="1" rowspan="1">Gives the number n for the activation,<br>e.g. if set to 2, the target element is executed every second time.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>offset</i>
+ </td>
+ <td colspan="1" rowspan="1">Initial shift for the first execution of the target.</td>
+ </tr>
+ </table>
+ <p>If for example
+ <i>prescaler</i> is 5 and
+ <i>offset</i> is 2 it is executed on the 2<sup>nd</sup>, 7<sup>th</sup>, 12<sup>th</sup>, … time.
+ </p>
+ <p>Counters are available at the following elements:</p>
+ <ul>
+ <li>Call sequence items:
+ <ul>
+ <li>
+ <i>ClearEvent</i>
+ </li>
+ <li>
+ <i>EnforcedMigration</i>
+ </li>
+ <li>
+ <i>InterProcessActivation</i>
+ </li>
+ <li>
+ <i>SchedulePoint</i>
+ </li>
+ <li>
+ <i>SetEvent</i>
+ </li>
+ <li>
+ <i>TaskRunnableCall</i>
+ </li>
+ <li>
+ <i>TerminateProcess</i>
+ </li>
+ <li>
+ <i>WaitEvent</i>
+ </li>
+ </ul>
+ </li>
+ <li>Stimuli:
+ <ul>
+ <li>
+ <i>InterProcess</i>
+ </li>
+ <li>
+ <i>EventStimulus</i>
+ </li>
+ </ul>
+ </li>
+ </ul>
+
+
+<h2><a id="section3.3">3.3 </a>Common Elements</h2>
+ <p>The
+ <i>CommonElements</i> model provides a central container for tags and classifiers. These elements are used in many sub models where references to
+ <i>Tags</i> or
+ <i>Classifiers</i> provide a mechanism to annotate objects.
+ </p>
+ <p>
+ <img src="images/model_common_elements.png"/>
+ </p>
+
+
+<h3 id="common-tags"><a id="section3.3.1">3.3.1 </a>Tags</h3>
+ <p>Tags are a generic possibility to annotate objects in the AMALTHEA model.</p>
+ <p>
+ <img src="images/model_common_tag.png"/>
+ </p>
+
+
+<h3 id="common-classifiers"><a id="section3.3.2">3.3.2 </a>Classifiers</h3>
+ <p>Classifiers are used to define specific features or abilities of a core or a memory. They are used in the
+ <i>PropertyConstraintsModel</i> to restrict the allocation to cores or the memory mapping.
+ </p>
+ <p>
+ <img src="images/model_common_classifier.png"/>
+ </p>
+
+
+<h2><a id="section3.4">3.4 </a>Components Model</h2>
+ <p>The AMALTHEA component model is central accessible through the
+ <i>ComponentsModel</i> element.
+ </p>
+ <p>It holds the following types:</p>
+ <ul>
+ <li>
+ <strong>Component</strong> /
+ <strong>Composite</strong>
+ </li>
+ <li>
+ <strong>System</strong>
+ </li>
+ </ul>
+ <p>
+ <img class="scale" src="images/model_components.png"/>
+ </p>
+
+
+<h3><a id="section3.4.1">3.4.1 </a>Components Model Elements</h3>
+ <p>The elements of the Components Model inherit several capabilities from common elements.</p>
+ <p>
+ <img class="scale" src="images/model_components_common.png"/>
+ </p>
+ <p>Ports, Components, Composites and ComponentInstances are referable by unique names.
+ <br>A Connector also has a name but the name is optional and does not have to be unique.
+ </p>
+
+
+<h4><a id="section3.4.1.1"></a>Component</h4>
+ <p>The 'Component' class represents a component. Components could be created directly within the 'ComponentModel' and are used as a type for a component instance.</p>
+ <p>
+ <img class="scale" src="images/model_components_component_references.png"/>
+ </p>
+ <p>It contains several ports of type 'Port'. A component refers the classes 'OsEvent', 'Label', 'Runnable' and 'AbstractProcess' from the software model and the class 'Semaphore' from the OS model.</p>
+
+
+<h4><a id="section3.4.1.2"></a>System and Composite</h4>
+ <p>Systems are defined as top level elements within a component model. A system contains several Component- and
+ <br>Connection-instances and is used to define the architecture of a technical system.
+ </p>
+ <p>A 'Composite' is a special component type to aggregate Component- and Connection-instances compositely.
+ <br>So it could be used to create hierarchical component structures.
+ </p>
+ <p>System and Composite implement the interface 'ISystem'.
+ <br>The following diagram shows the main elements to represent the hierarchical structure.
+ </p>
+ <p>
+ <img src="images/model_components_isystem.png"/>
+ </p>
+ <p>In general each inner port should be connected. If a port is intentionally left unconnected it has to be added to the list of 'groundedPorts'.</p>
+
+
+<h4><a id="section3.4.1.3"></a>ComponentInstance and Connector</h4>
+ <p>The 'ComponentInstance' and the 'Connector' can be created within a 'System' or a 'Composite'. 'ComponentInstances' are used to represent instances of component- or composite-types. The 'Connector' class is used to connect the component instances to each other via their Ports. The connector contains a source and target 'QualifiedPort'.</p>
+
+
+<h4><a id="section3.4.1.4"></a>QualifiedPort</h4>
+ <p>A 'qualified' port refers a 'ComponentInstance' and a 'Port'.
+ <br>If the 'instance' link is null then the QualifiedPort refers to a port of the enclosing composite.
+ </p>
+
+
+<h4><a id="section3.4.1.5"></a>InterfacePort</h4>
+ <p>The 'InterfacePort' class contains the attribute 'kind' to set the port direction.
+ <br>The attribute 'interface name' can be used to refer to an external definition, e.g. described in detail with the Franca IDL.
+ </p>
+
+
+<h3><a id="section3.4.2">3.4.2 </a>Example</h3>
+
+
+<h4><a id="section3.4.2.1"></a>Diagram</h4>
+ <p>The diagram of the example shows a composite 'A' that contains two component instances 'X' and 'Y' of type 'B'. The connections between the ports are named 'c1' to 'c4'. The grounded port 'in_3' of instance 'X' (intentionally left unconnected) is marked green. The second unconnected port 'in_2' of instance 'Y' is unspecified. It is marked red and has to be changed, either declared as grounded or connected to another port. </p>
+ <p>
+ <img src="images/model_components_example.png"/>
+ </p>
+
+
+<h4><a id="section3.4.2.2"></a>Model Editor</h4>
+ <p>The same example is shown in the standard AMALTHEA editor.</p>
+ <p>
+ <img src="images/model_components_example_treeview.png"/>
+ </p>
+
+
+<h3><a id="section3.4.3">3.4.3 </a>Franca IDL</h3>
+ <p>Franca is a common interface definition language (IDL). The initial version has been developed by the GENIVI consortium as part of the standardization of an In-Vehicle Infotainment (IVI) platform. The first public version of Franca was released in 2012 under the Eclipse Public License. Franca is approved as official Eclipse project.</p>
+ <p>The Franca IDL files can be edited in a textual editor that is provided by Franca. </p>
+ <p>
+ <img src="images/model_franca_editor_screenshot.png"/>
+ </p>
+ <p>AMALTHEA ports can specify the 'interface name' to refer to interfaces.</p>
+ <p>
+ <img src="images/model_components_franca_idl.png"/>
+ </p>
+
+
+<h2><a id="section3.5">3.5 </a>Configuration Model</h2>
+ <p>The purpose of the configuration model is to provide a common mechanism for configuration purposes. The included configurations can contain elements for further processing or build steps.</p>
+ <p>The central element is the
+ <i>ConfigModel</i> class.
+ </p>
+ <p>Currently the only configuration object is
+ <i>EventConfig</i>.
+ </p>
+ <p>
+ <img src="images/model_config_overview.png"/>
+ </p>
+
+
+<h3><a id="section3.5.1">3.5.1 </a>Event Configuration</h3>
+ <p>The event configuration represents target events to trace, either in a simulation or on a target hardware platform. The
+ <i>EventConfig</i> elements are contained in the ConfigModel class as list with the name
+ <i>eventsToTrace</i>. Attributes of
+ <i>EventConfig</i> are:
+ </p>
+ <ol>
+ <li>
+ <i>name</i>: (optional) name of the element
+ </li>
+ <li>
+ <i>event</i>: reference to an existing events in the
+ <i>Events</i> model
+ </li>
+ </ol>
+
+
+<h4><a id="section3.5.1.1"></a>Sample</h4>
+ <p>An example use case can be to trace all
+ <i>Process</i> activate events. To express this in the configuration, one contained element must be of type
+ <i>EventConfig</i> with the corresponding
+ <i>Event</i> pointing to an already existent element. The
+ <i>Event</i> is of type
+ <i>ProcessEvent</i> and the
+ <i>ProcessEventType</i> is set to
+ <i>activate</i>. The other attributes are left blank to not limit the configuration to one
+ <i>Process</i> with a given name for example.
+ </p>
+ <p>The consumer of the configuration must then match and filter the relevant elements for further processing.</p>
+ <p>The following screenshot is showing this minimal configuration.</p>
+ <p>
+ <img src="images/model_config_sample.png"/>
+ </p>
+
+
+<h2><a id="section3.6">3.6 </a>Constraints Model</h2>
+ <p>The constraints model contains different kind of constraints. There are the runnable-sequencing-constraints that can be used to define a required order for the runnables of the Software Model, the affinity constraints for defining the constraints for the mapping of runnables, processes and schedulers, and the timing constraints for restricting the time span between events or the duration of event chains. Regarding to that, it is also possible to define event chains in this model. </p>
+ <p>
+ <img src="images/model_constraints.png"/>
+ </p>
+
+
+<h3><a id="section3.6.1">3.6.1 </a>Requirements</h3>
+ <p>The Requirements are used to specify quality requirements for the dynamic architecture.
+ <br>Requirements are divided into the following types depending on the entity type for which the requirement is specified:
+ </p>
+ <ul>
+ <li>Architecture Requirements for components</li>
+ <li>Process Chain Requirements for process chains</li>
+ <li>Process Requirements for tasks and ISRs</li>
+ <li>Runnable Requirements for runnables</li>
+ </ul>
+ <p>The Severity attribute is used to describe the quality impact if the requirement is not fulfilled.
+ <br>The Limit defines the metric, the value, and whether the value for the metric is an upper or a lower bound.
+ <br>Depending on the metric unit, the following Limits can be distinguished:
+ </p>
+ <ul>
+ <li>Count Requirement Limit for metrics that count system actions</li>
+ <li>CPU Percentage Requirement Limit for metrics that specify relative CPU characteristics</li>
+ <li>Frequency Requirement Limit for metrics that measure the frequency of system actions</li>
+ <li>Percentage Requirement Limit for metrics that specify relative system characteristics</li>
+ <li>Time Requirement Limit for metrics that describe time intervals</li>
+ </ul>
+ <p>
+ <img class="scale" src="images/model_constraints_requirements.png"/>
+ </p>
+ <p>Time Metric groups all metrics that describe time intervals of an individual process instance or between two succeeding process instances and are defined as follows:</p>
+ <ul>
+ <li>
+ <i>
+ <b>ActivateToActivate</b>
+ </i>: This metric indicates the distance between two successive activations of a task or isr. The
+ <i>ActivateToActivate</i> metric of process instance n quantifies the time between the activation moment of process instance n and that of instance n+1.<br>
+ <img src="images/model_constraints_metric_activatetoactivate.png"/>
+ </li>
+ <li>
+ <i>
+ <b>CoreExecutionTime</b>
+ </i>: This metric quantifies the amount of time of a process instance between its start and termination in which it is actively executed on a specific processing unit.
+ </li>
+ <li>
+ <i>
+ <b>EndToEnd</b>
+ </i>: This metric indicates the time interval between two successive ends of a process. The
+ <i>EndToEnd</i> metric of process instance n quantifies the time between the termination moment of process instance n and that of instance n+1.<br>
+ <img src="images/model_constraints_metric_endtoend.png"/>
+ </li>
+ <li>
+ <i>
+ <b>EndToStart</b>
+ </i>: This metric indicates the time interval between two successive process instances. The
+ <i>EndToStart</i> metric of process instance n quantifies the time between the termination moment of process instance n and the start moment of instance n+1.<br>
+ <img src="images/model_constraints_metric_endtostart.png"/>
+ </li>
+ <li>
+ <i>
+ <b>GrossExecutionTime</b>
+ </i>: This metric indicates the time interval between the start moment and the termination moment of a process instance.<br>
+ <img src="images/model_constraints_metric_grossexecutiontime.png"/>
+ </li>
+ <li>
+ <i>
+ <b>Lateness</b>
+ </i>: This metric indicates whether a process instance misses its deadline. It quantifies the amount of time between the termination moment of the process instance and its deadline. Thus, the resulting lateness is negative and indicates that no deadline miss occurred if the termination moment of the process instance is before the deadline and vice versa.<br>
+ <img src="images/model_constraints_metric_lateness.png"/>
+ </li>
+ <li>
+ <i>
+ <b>MemoryAccessTime</b>
+ </i>: This metric quantifies the amount of time that is required by a process for transferring data from or to the memory.
+ </li>
+ <li>
+ <i>
+ <b>NetExecutionTime</b>
+ </i>: The net execution time indicates the actual execution time of a process instance, i.e., the time it is occupying a processing unit. Thus, it quantifies the time from the start moment of a process instance to its termination moment excluding the time the process instance is interfered.<br>
+ <img src="images/model_constraints_metric_netexecutiontime.png"/>
+ </li>
+ <li>
+ <i>
+ <b>OsOverhead</b>
+ </i>: This metric indicates the amount of execution time that is consumed by functions that are part of the operating system.
+ </li>
+ <li>
+ <i>
+ <b>ParkingTime</b>
+ </i>: This metric quantifies the amount of time that a process instance spends between its start and termination passively waiting for the access of a resource.
+ </li>
+ <li>
+ <i>
+ <b>PollingTime</b>
+ </i>: This metric quantifies the amount of time that a process instance spends between its start and termination actively waiting for the access of a resource.<br>
+ <img src="images/model_constraints_metric_pollingtime.png"/>
+ </li>
+ <li>
+ <i>
+ <b>ReadyTime</b>
+ </i>: This metric quantifies the amount of time of a process instance between its start and termination in which it is not actively executed on any processing unit.<br>
+ <img src="images/model_constraints_metric_readytime.png"/>
+ </li>
+ <li>
+ <i>
+ <b>ResponseTime</b>
+ </i>: The response time of a task or ISR instance is defined as the time between the moment of its activation and its termination. Thus, it measures the whole life cycle of a process instance.<br>
+ <img src="images/model_constraints_metric_responsetime.png"/>
+ </li>
+ <li>
+ <i>
+ <b>RunningTime</b>
+ </i>: This metric quantifies the amount of time of a process instance between its start and termination in which it is actively executed on any processing unit.<br>
+ <img src="images/model_constraints_metric_runningtime.png"/>
+ </li>
+ <li>
+ <i>
+ <b>StartDelay</b>
+ </i>: This metric quantifies the delay of the start time of a process instance which is defined as the time interval between the activation moment of this process instance and its start moment.<br>
+ <img src="images/model_constraints_metric_startdelay.png"/>
+ </li>
+ <li>
+ <i>
+ <b>StartToStart</b>
+ </i>: This metric indicates the time interval between two successive starts of a process. The
+ <i>StartToStart</i> metric of process instance n quantifies the time between the start moment of process instance n and that of instance n+1.<br>
+ <img src="images/model_constraints_metric_starttostart.png"/>
+ </li>
+ <li>
+ <i>
+ <b>WaitingTime</b>
+ </i>: This metric quantifies the amount of time that a process instance spends between its start and termination passively waiting for an OS event.<br>
+ <img src="images/model_constraints_metric_waitingtime.png"/>
+ </li>
+ </ul>
+ <p>Count Metrics are metrics that describe absolutely how often system characteristics occur and are defined as follows:</p>
+ <ul>
+ <li>
+ <i>
+ <b>Activations</b>
+ </i>: This metric quantifies the number of times a process is activated.
+ </li>
+ <li>
+ <i>
+ <b>BoundedMigrations</b>
+ </i>: This metric quantifies the number of times a process instance starts executing on a processing unit that is different to the processing unit on which the previous process instance terminated.
+ </li>
+ <li>
+ <i>
+ <b>CacheHit</b>
+ </i>: This metric quantifies the amount of times that data requested by a process is found in the cache memory.
+ </li>
+ <li>
+ <i>
+ <b>CacheMiss</b>
+ </i>: This metric quantifies the amount of times that data requested by a process is not stored in the cache memory and has to be fetched from somewhere else.
+ </li>
+ <li>
+ <i>
+ <b>FullMigrations</b>
+ </i>: This metric quantifies the number of times a process instance migrates from one processing unit to another triggered by a schedule point.
+ </li>
+ <li>
+ <i>
+ <b>MtaLimitExceeding</b>
+ </i>: This metric quantifies the number of times a process is not activated during runtime because this would violate the maximum number of concurrently activated processes (MTA).
+ </li>
+ <li>
+ <i>
+ <b>Preemptions</b>
+ </i>: This metric quantifies the number of times a process is preempted by another task or ISR.
+ </li>
+ </ul>
+ <p>Frequency Metric groups all metrics that describe the rate in which system characteristics occur and are defined as follows:</p>
+ <ul>
+ <li>
+ <i>
+ <b>CacheHitFrequency</b>
+ </i>: This metric quantifies how often per unit of time data requested by a process is found in the cache memory.
+ </li>
+ <li>
+ <i>
+ <b>CacheMissFrequency</b>
+ </i>: This metric quantifies how often per unit of time data requested by a process is not found in the cache memory.
+ </li>
+ </ul>
+ <p>CPU Percentage Metric groups all metrics that describe a ratio between the amount of time a processing unit is in a certain state for a specific process and the maximum capacity of the considered processing unit and are defined as follows:</p>
+ <ul>
+ <li>
+ <i>
+ <b>CPUBuffering</b>
+ </i>: This metric quantifies the ratio between the amount of time a processing unit is in the state buffering for a specific process and the maximum capacity of the considered processing unit.
+ </li>
+ <li>
+ <i>
+ <b>CPULoad</b>
+ </i>: This metric quantifies the ratio of the load of a processing unit caused by a process and the maximum capacity of the considered processing unit.
+ </li>
+ <li>
+ <i>
+ <b>CPUParking</b>
+ </i>: This metric quantifies the ratio between the amount of time a processing unit is in the state parking for a specific process and the maximum capacity of the considered processing unit.
+ </li>
+ <li>
+ <i>
+ <b>CPUPolling</b>
+ </i>: This metric quantifies the ratio between the amount of time a processing unit is in the state polling for a specific process and the maximum capacity of the considered processing unit.
+ </li>
+ <li>
+ <i>
+ <b>CPUReady</b>
+ </i>: This metric quantifies the ratio between the amount of time a processing unit is in the state ready for a specific process and the maximum capacity of the considered processing unit.
+ </li>
+ <li>
+ <i>
+ <b>CPURunning</b>
+ </i>: This metric quantifies the ratio between the amount of time a processing unit is in the state running for a specific process and the maximum capacity of the considered processing unit.
+ </li>
+ <li>
+ <i>
+ <b>CPUWaiting</b>
+ </i>: This metric quantifies the ratio between the amount of time a processing unit is in the state waiting for a specific process and the maximum capacity of the considered processing unit.
+ </li>
+ </ul>
+ <p>Percentage Metric groups all metrics that describe a relationship between two system characteristics and are defined as follows: </p>
+ <ul>
+ <li>
+ <i>
+ <b>CacheHitRatio</b>
+ </i>: This metric quantifies how often data requested by a process is found in the cache memory in comparison to how often it is not found.
+ </li>
+ <li>
+ <i>
+ <b>CacheMissRatio</b>
+ </i>: This metric quantifies how often data requested by a process is not found in the cache memory in comparison to how often it is found.
+ </li>
+ <li>
+ <i>
+ <b>NormalizedLateness</b>
+ </i>: This metric quantifies the lateness of a process instance in comparison to the process's maximum response time which is defined by its deadline.
+ </li>
+ <li>
+ <i>
+ <b>NormalizedResponseTime</b>
+ </i>: This metric quantifies the response time of a process instance in comparison to the process's maximum response time which is defined by its deadline.
+ </li>
+ <li>
+ <i>
+ <b>OsOverheadRelative</b>
+ </i>: This metric quantifies the amount of execution time that is consumed by functions that are part of the operating system in comparison to net execution time of the process in whose context the functions are called.
+ </li>
+ </ul>
+ <p>An example for a requirement is the deadline for a task. The deadline is specified by an upper limit for the response time of the respective task.</p>
+
+
+<h3><a id="section3.6.2">3.6.2 </a>Runnable Sequencing Constraints</h3>
+ <p>These constraints can be used to define execution orders of runnables or, in other words, the dependencies between runnables. These dependencies can result from data exchange or any functional dependency that is not necessarily visible by other model parameters.</p>
+ <p>The following requirements can be specified with this constraint:</p>
+ <ul>
+ <li>Execution sequence of runnables A -&gt;B, meaning A has to be finished before B starts</li>
+ <li>Scope on certain process/processes, when a runnable is executed multiple times in different process contexts</li>
+ <li>Succession of runnables within a process (strict, loose)</li>
+ <li>Position of sequence within a process (start, end, any position)</li>
+ </ul>
+ <p>
+ <img src="images/model_constraints_runnable_sequencing.png"/>
+ </p>
+ <p>A
+ <i>RunnableSequencingConstraint</i> contains a list of
+ <i>ProcessRunnableGroup</i> elements and an enumeration
+ <i>RunnableOrderType</i> describing the basic rule for the sequencing. In general, a runnable sequencing constraint is independent of the processes that execute the runnables. Via the attribute "processScope" it is possible to define that a sequencing constraint is only valid for runnables within just one process or a set of processes.
+ </p>
+ <p>The
+ <i>ProcessRunnableGroups</i> contain references to runnables that should be sequenced. The sequence is defined by the order of the runnable groups within the sequencing constraint. The order of the runnable references within a group is undefined.
+ <br>To sequence two runnables it is consequently necessary to create a
+ <i>RunnableSequencingConstraint</i> with two
+ <i>ProcessRunnableGroups</i>, each referencing one of the runnables.
+ <br>To describe that a set of runnables have to be executed before or after another runnable or set of runnables, it is possible to put more than one runnable reference in a group. As already mentioned, the order of the referenced runnables within a
+ <i>ProcessRunnableGroup</i> is unimportant.
+ </p>
+ <p>The following picture visualises a
+ <i>RunnableSequencingConstraint</i> and multiple possible runtime situations. The constraint has two runnable groups, each depicted by an ellipsis. In this example, there is just one runnable in each group. The runnables in the groups must be executed in the order of the group ("R1" before "R2"). There is no restriction in which process context the runnables are executed. It is important that the order is correct and that the runnable of one group terminates before the runnable of the next group starts. The exemplary runtime situations shown in the lower part of the figure visualise situations that satisfy this constraint (blue) and those who violate the constraint (red).
+ </p>
+ <p>
+ <img src="images/model_constraints_runnable_sequencing_basic.png"/>
+ </p>
+ <p>The
+ <i>RunnableSequencingConstraint</i> in the next figure has two processes set as a scope in its second group. That means that the runnable "R3" is allowed to be executed on the processes "P1" or "P3" (blue). But it is only expected to be executed one time in between (red)!
+ </p>
+ <p>
+ <img src="images/model_constraints_runnable_sequencing_scope.png"/>
+ </p>
+ <p>Each
+ <i>RunnableSequencingConstraint</i> has a
+ <i>RunnableOrderType</i>. It provides the following sequencing modes:
+ </p>
+ <ul>
+ <li>successor</li>
+ <li>immediateSuccessorAnySequence</li>
+ <li>immediateSuccessorEndSequence</li>
+ <li>immediateSuccessorStartSequence</li>
+ </ul>
+ <p>The meaning of the mode "successor" is that the runnable groups of a sequencing constraint do not have to follow each other directly, i.e., runnables that are not part of the constraint can be executed in between.
+ <br>In contrast to this, the modes starting with "immediateSuccessor" express that the runnables referenced by the runnable groups must execute in direct order, so without any runnable in between. With "StartSequence", "AnySequence" and "EndSequence" it is further constrained that the runnables of the constraint have to be executed at the beginning, at the end or at any position in a process.
+ <br>Assuming that all runnables are executed on the same process, the mode "immediateSuccessorStartSequence" means that all runnables of the constraint have to be executed in the correct order at the beginning of the process.
+ <br>The mode "immediateSuccessorEndSequence" is like "immediateSuccessorStartSequence", but here the runnable sequence must be executed at the end of the process.
+ </p>
+
+
+<h3><a id="section3.6.3">3.6.3 </a>Data Age Constraints</h3>
+ <p>Data Age constraints are used to define when the information in a label becomes valid or invalid after its last update. Therefore a runnable and a label has to be set. The information update occurs when the runnable performs a write access on the label. It is possible to define the minimum time after the information of a label update becomes valid. This means that the information shall not be used for further calculations before this time is over. The maximum time on the other hand defines the time after the label update when the information becomes invalid. Beside of time it is possible to define a minimum and maximum cycle. The cycle is related to the activation of the process that executes the runnable. </p>
+ <p>
+ <img src="images/model_constraints_data_age.png"/>
+ </p>
+ <ul class="validation-rule">
+ <li>DataAgeTime: The
+ <em>Time</em> object in the role of
+ <em>minimumTime</em> must not contain a negative value!
+ </li>
+ <li>DataAgeTime: The
+ <em>Time</em> object in the role of
+ <em>maximumTime</em> must not contain a negative value!
+ </li>
+ </ul>
+
+
+<h3><a id="section3.6.4">3.6.4 </a>Data Coherency Groups</h3>
+ <p>A
+ <i>DataCoherencyGroup</i> is used to define data coherency requirements for a group of labels.
+ <br>The Direction hereby is used to specify if the labels have to be read or written coherently. Moreover, the scope attribute defines the context of the coherent read or write requirement. Possible scopes are components, processes, and runnables.
+ </p>
+ <p>
+ <img src="images/model_constraints_data_coherency.png"/>
+ </p>
+
+
+<h3><a id="section3.6.5">3.6.5 </a>Data Stability Groups</h3>
+ <p>A
+ <i>DataStabilityGroup</i> is used to define that the values of labels have to be kept stable within a given execution context.
+ <br>Currently, the following execution contexts are covered by the scope:
+ </p>
+ <ul>
+ <li>Component</li>
+ <li>Process</li>
+ <li>Runnable</li>
+ </ul>
+ <p>This means that it has to be guaranteed that the values of labels are identical either within the runnable, the process, or the component in which the denoted labels are accessed.</p>
+ <p>
+ <img src="images/model_constraints_data_stability.png"/>
+ </p>
+
+
+<h3><a id="section3.6.6">3.6.6 </a>Event Chains</h3>
+ <p>The concept for event chains is based on the Timing Augmented Description Language.
+ <br>The Timing Augmented Description Language (TADL) is coming from the
+ <a href="https://itea3.org/project/timmo-2-use.html">TIMMO-2-USE </a> project.
+ </p>
+ <p>
+ <img src="images/model_constraints_eventchain.png"/>
+ </p>
+ <p>The
+ <i class="Abstract">EventChain</i> consists of
+ <i>EventChainItems</i>. These items are classified in two types:
+ </p>
+ <ol>
+ <li>EventChainReferences -&gt; EventChain: Used to reference already global defined EvenChains in the root list of the model.</li>
+ <li>EventChainContainers -&gt; SubEventChain: Inner anonymous EventChains, which are only defined once and has no global meaning, but only in the context of the current defined EventChain.</li>
+ </ol>
+ <p>An Event Chain object references always two events, a stimulus event and a response event. To define a simple event chain that just contains two events, one event chain object is enough. In this case it would just be a chain that with its stimulus as first event and the response as second event.
+ <br>If more events are required it is necessary to add sub event chains. The stimulus is always the first event of an event chain, the response is always the last event. The events that are defined in the sub event chains are the events in between.
+ </p>
+ <p>The picture below shows a simple example for an event chain of four events in a row.
+ <br>The top level chain defines the first event (E1) and the last event (E4).
+ <br>It contains a number of event chains. They describe the way from E1 to E4.
+ <br>These sub event chains are added as
+ <i>segments</i> to the parent.
+ <br>For this some rules has to be considered:
+ <br>The stimulus of the first child event chain has to be the same as the stimulus of the parent (red in picture).
+ <br>The stimulus of other child event chains have to be equal to the response of the previous chain (blue in picture).
+ <br>The response of the last child event chain has to be the same as the response of the parent (green in picture).
+ </p>
+ <p>
+ <img src="images/model_constraints_eventchain_segments.png" style="width: 500px"/>
+ </p>
+ <p>As a stimulus or response event it is either possible to use an Entity Event or an Event Set.
+ <br>An Entity Event is a single event regarding to an entity like a task or a runnable. So it can be e.g. the start of a runnable.
+ <br>If a set of events is used, then all events of this group must occur fulfill the event chain. The order in which the events occur is not important.
+ </p>
+ <p>
+ <img src="images/model_constraints_eventchain_eventgroups.png"/>
+ </p>
+
+
+<h3><a id="section3.6.7">3.6.7 </a>Timing Constraints</h3>
+
+
+<h4><a id="section3.6.7.1"></a>Synchronization Constraints</h4>
+ <p>An
+ <i>EventSynchronizationConstraint</i> describes how tightly the occurrences of a group of events follow each other.
+ <br>There must exist a sequence of time windows of width tolerance, such that every occurrence of every event in events belongs to at least one window, and every window is populated by at least one occurrence of every event.
+ <br>The parameter
+ <i>multipleOccurrencesAllowed</i> defines, whether for the constraint all occurrences have to be considered or just the subsequent ones.
+ </p>
+ <p>An
+ <i>EventChainSynchronizationConstraint</i> describes how tightly the occurrences of an event chain follow the occurrences of a different event chain.
+ <br>The
+ <i>SynchronizationType</i> defines which parts of the event chains have to be in sync, stimulus or response, and the width of a time window sets the allowed tolerance.
+ <br>The parameter
+ <i>multipleOccurrencesAllowed</i> defines, whether for the constraint all occurrences have to be considered or just the subsequent ones.
+ </p>
+ <p>
+ <img src="images/model_constraints_timing_sync.png"/>
+ </p>
+ <ul class="validation-rule">
+ <li>
+ <em>SynchronizationConstraint</em>: The
+ <em>Time</em> object in the role of
+ <em>tolerance</em> must not contain a negative value!
+ </li>
+ </ul>
+
+
+<h4><a id="section3.6.7.2"></a>Repetition Constraint</h4>
+ <p>A
+ <i>RepetitionConstraint</i> describes the distribution of the occurrences of a single event, including jitter.
+ <br>Every sequence of span occurrences of event must have a length of at least lower and at most upper time units.
+ </p>
+ <p>
+ <img src="images/model_constraints_timing_repetition.png"/>
+ </p>
+ <ul class="validation-rule">
+ <li>
+ <em>RepetitionConstraint</em>: The
+ <em>Time</em> object in the role of
+ <em>lower</em> must not contain a negative value!
+ </li>
+ <li>
+ <em>RepetitionConstraint</em>: The
+ <em>Time</em> object in the role of
+ <em>upper</em> must not contain a negative value!
+ </li>
+ <li>
+ <em>RepetitionConstraint</em>: The
+ <em>Time</em> object in the role of
+ <em>period</em> must not contain a negative value!
+ </li>
+ <li>
+ <em>RepetitionConstraint</em>: The
+ <em>Time</em> object in the role of
+ <em>jitter</em> must not contain a negative value!
+ </li>
+ </ul>
+
+
+<h4><a id="section3.6.7.3"></a>Delay Constraint</h4>
+ <p>
+ <img src="images/model_constraints_timing_delay.png"/>
+ </p>
+ <ul class="validation-rule">
+ <li>
+ <em>DelayConstraint</em>: The
+ <em>Time</em> object in the role of
+ <em>lower</em> must not contain a negative value!
+ </li>
+ <li>
+ <em>DelayConstraint</em>: The
+ <em>Time</em> object in the role of
+ <em>upper</em> must not contain a negative value!
+ </li>
+ </ul>
+ <p>A Delay Constraint imposes limits between the occurrences of an event called source and an event called target.
+ <br>Every instance of source must be matched by an instance of target within a time window starting at lower and ending at upper time units relative to the source occurrence.
+ <br>A
+ <i>MappingType</i> defines whether there is a strong (
+ <i>OneToOne</i> ), neutral (
+ <i>Reaction</i> ), or weak (
+ <i>UniqueReaction</i> ) delay relation between the events:
+ </p>
+ <ul>
+ <li>
+ <i>
+ <b>OneToOne</b>
+ </i>: According to page 18f of
+ <a href="https://itea3.org/project/workpackage/document/download/850/09033-TIMMO-2-USE-WP-2-D11Languagesyntax,semantics,metamodelV2">TIMMO-2-USE Deliverable D11 'Language Syntax, Semantics, Metamodel V2'</a>, a constraint with this mapping type is satisfied if and only if
+ <i>source</i> and
+ <i>target</i> have the same number of occurrences and for each index
+ <i>i</i>, if there is an
+ <i>i</i>-th occurrence of source at time
+ <i>x</i> there is also an
+ <i>i</i>-th occurrence of
+ <i>target</i> at time
+ <i>y</i> such that
+ <i>lower</i> ≤
+ <i>y</i> -
+ <i>x</i> ≤
+ <i>upper</i>.<br> This means that the source event and the target event have the same number of occurrences and no stray target occurrences are accepted.
+ </li>
+ </ul>
+ <p>
+ <img src="images/model_constraints_delayconstraint_onetoone.png"/>
+ </p>
+ <ul>
+ <li>
+ <i>
+ <b>Reaction</b>
+ </i>: According to page 17f of
+ <a href="https://itea3.org/project/workpackage/document/download/850/09033-TIMMO-2-USE-WP-2-D11Languagesyntax,semantics,metamodelV2">TIMMO-2-USE Deliverable D11 'Language Syntax, Semantics, Metamodel V2'</a>, a constraint with this mapping type is satisfied if and only if for each occurrence
+ <i>x</i> of
+ <i>source</i>, there is an occurrence
+ <i>y</i> of
+ <i>target</i> such that
+ <i>lower</i> ≤
+ <i>y</i> -
+ <i>x</i> ≤
+ <i>upper</i>.<br> This means that multiple source event occurrences may be mapped to the same target event and stray target event occurrences are ignored.
+ </li>
+ </ul>
+ <p>
+ <img src="images/model_constraints_delayconstraint_reaction.png"/>
+ </p>
+ <ul>
+ <li>
+ <i>
+ <b>UniqueReaction</b>
+ </i>: This mapping type is a mixture of the previous types by specifying that for every occurrence of the source event exactly one target event must occur within the defined time span. Thus, target events may not be shared between source events and stray target events violate the requirement. In contrast to the
+ <i>OneToOne</i> mapping case, the source event is not mapped to the first source event but is dropped as a violation, if a target event is missed.
+ </li>
+ </ul>
+ <p>
+ <img src="images/model_constraints_delayconstraint_uniquereaction.png"/>
+ </p>
+
+
+<h4><a id="section3.6.7.4"></a>Event Chain Latency Constraint</h4>
+ <p>An
+ <i>EventChainLatencyConstraint</i> defines how long before each response a corresponding stimulus must have occurred (
+ <i>Age</i> ), or how long after a stimulus a corresponding response must occur (
+ <i>Reaction</i> ).
+ <br>It always refers to an EventChain.
+ </p>
+ <p>
+ <img src="images/model_constraints_timing_latency.png"/>
+ </p>
+ <ul class="validation-rule">
+ <li>
+ <em>EventChainLatencyConstraint</em>: The
+ <em>Time</em> object in the role of
+ <em>minimum</em> must not contain a negative value!
+ </li>
+ <li>
+ <em>EventChainLatencyConstraint</em>: The
+ <em>Time</em> object in the role of
+ <em>maximum</em> must not contain a negative value!
+ </li>
+ </ul>
+
+
+<h3><a id="section3.6.8">3.6.8 </a>Affinity Constraints</h3>
+ <p>Affinity constraints are used to define the mapping of executable objects to each other.
+ <br>The objects that can be mapped are:
+ </p>
+ <ul>
+ <li>Runnables</li>
+ <li>Processes (Task or ISR)</li>
+ <li>Labels</li>
+ </ul>
+ <p>
+ <img src="images/model_constraints_affinity.png"/>
+ </p>
+ <p>An affinity constraint can either be a pairing or a separation constraint. A pairing constraint contains one amount of objects and a target. The pairing constraints say "All these objects must run together on this target". A separation constraint contains two groups of objects and a target. It says "This group of objects is not allowed to be mapped with the other group of objects on the specific target". So the separation constraint can be used to forbid a combination of objects on a target. It can also be used to say "These objects are not allowed to be mapped on this target". In this case only one group of the separation constraint is used.</p>
+ <p>Each affinity constraint has one or more targets. The type of the target depends on the type that should be mapped.</p>
+
+
+<h4><a id="section3.6.8.1"></a>Data Affinity Constraints</h4>
+ <p>A
+ <i>DataConstraint</i> is used to define the mapping of label objects to memory units.
+ </p>
+ <p>
+ <img src="images/model_constraints_affinity_data.png"/>
+ </p>
+
+
+<h4><a id="section3.6.8.2"></a>Process Affinity Constraints</h4>
+ <p>A
+ <i>ProcessConstraint</i> is used to define the mapping of process (Task or ISR) objects to processing cores or scheduling units.
+ </p>
+ <p>
+ <img src="images/model_constraints_affinity_process.png"/>
+ </p>
+
+
+<h4><a id="section3.6.8.3"></a>Runnable Affinity Constraints</h4>
+ <p>A
+ <i>RunnableConstraint</i> is used to define the mapping of runnable objects to processing cores or scheduling units.
+ </p>
+ <p>
+ <img src="images/model_constraints_affinity_runnable.png"/>
+ </p>
+
+
+<h3><a id="section3.6.9">3.6.9 </a>Physical Section Constraints</h3>
+ <p>A
+ <i>PhysicalSectionConstraint</i> is used to to define the mapping of Section objects to Memories. This mapping of Section object to Memory objects specifies that corresponding
+ <strong>PhysicalSectionMapping</strong> associated to this
+ <strong>Section</strong> element can be allocated only in the mapped Memories.
+ </p>
+ <pre xml:space="preserve"><code>Example: PhysicalSectionConstraint with the below properties has the following semantic:
+ name: Ram1_Ram2_PhysicalSectionConstraint
+ Memories : RAM1, RAM2
+ Section : .abc.reini
+Semantic: PhysicalSectionMapping for .abc.reini section can only be allocated either in RAM1 or RAM2 or in both. But not in other Memories.
+</code></pre>
+
+
+<h2><a id="section3.7">3.7 </a>Event Model</h2>
+ <p>The event model provides the classes to describe the BTF-Events that can be used for the tracing configuration, for the modeling of event chains and for some timing constraints. </p>
+ <p>
+ <img class="scale" src="images/model_events.png"/>
+ </p>
+ <p>There are different event classes for the different entity types that can be traced: </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Entity</th>
+ <th colspan="1" rowspan="1">Event Class</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Process (Task, ISR)</td>
+ <td colspan="1" rowspan="1">ProcessEvent</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">ProcessChain</td>
+ <td colspan="1" rowspan="1">ProcessChainEvent</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Stimulus</td>
+ <td colspan="1" rowspan="1">StimulusEvent</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Runnable</td>
+ <td colspan="1" rowspan="1">RunnableEvent</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Label</td>
+ <td colspan="1" rowspan="1">LabelEvent</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Channel</td>
+ <td colspan="1" rowspan="1">ChannelEvent</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Semaphore</td>
+ <td colspan="1" rowspan="1">SemaphoreEvent</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Component</td>
+ <td colspan="1" rowspan="1">ComponentEvent</td>
+ </tr>
+ </table>
+ <p>In a running system, each entity can have different states. An event trace consists of the events that are visualizing the state-transitions of the traced entities. To define such an event in the model, each kind of event class contains an event-type-enumeration that provides the event-types for the state-transitions of its entity. The following picture shows the possible states of a process: </p>
+ <p>
+ <img src="images/model_events_process.png"/>
+ </p>
+ <p>So for example the event-type-enumeration for a process event contains the events
+ <i>activate</i>,
+ <i>start</i>,
+ <i>resume</i>, ...
+ </p>
+ <p>A description of the individual events can be found in the following table:</p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Event Class</th>
+ <th colspan="1" rowspan="1">Event Type</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="12">ProcessEvent</td>
+ <td colspan="1" rowspan="1">activate</td>
+ <td colspan="1" rowspan="1">The process instance is activated by a stimulus.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">start</td>
+ <td colspan="1" rowspan="1">The process instance is allocated to the core and starts execution for the first time.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">resume</td>
+ <td colspan="1" rowspan="1">The preempted process instance continues execution on the same or other core.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">preempt</td>
+ <td colspan="1" rowspan="1">The executing process instance is stopped by the scheduler, e.g. because of a higher priority process which is activated.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">poll</td>
+ <td colspan="1" rowspan="1">The process instance has requested a resource by polling (active waiting) which is not available.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">run</td>
+ <td colspan="1" rowspan="1">The process instance resumes execution after polling (i.e. active waiting) for a resource.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">wait</td>
+ <td colspan="1" rowspan="1">The process has requested a non-set OS EVENT (see OSEK 2.2.3 Extended Task Model, WAIT_Event()).</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">poll_parking</td>
+ <td colspan="1" rowspan="1">The parking process instance is allocated to the core and again polls (i.e. actively waits) for a resource.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">park</td>
+ <td colspan="1" rowspan="1">The active waiting process instance is preemptedby another process.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">release_parking</td>
+ <td colspan="1" rowspan="1">The resource which is requested by a parking process instance becomes available, but the parking process stays preempted and changes to READY state.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">release</td>
+ <td colspan="1" rowspan="1">The OS EVENT which was requested by a process is set (see OSEK 2.2.3 Extended Task Model, SET_Event()) and the process is ready to proceed execution.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">terminate</td>
+ <td colspan="1" rowspan="1">The process instance has finished execution.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="4">RunnableEvent</td>
+ <td colspan="1" rowspan="1">start</td>
+ <td colspan="1" rowspan="1">The runnable instance is allocated to the core and starts execution for the first time.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">suspend</td>
+ <td colspan="1" rowspan="1">The executing runnable instance is stopped, because the calling process is suspended.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">resume</td>
+ <td colspan="1" rowspan="1">The suspended runnable instance continues execution on the same or another core.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">terminate</td>
+ <td colspan="1" rowspan="1">The runnable instance has finished execution.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="2">Component</td>
+ <td colspan="1" rowspan="1">start</td>
+ <td colspan="1" rowspan="1">The execution of the component started, i.e. the first runnable in the list of runnables of the component instance is started.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">end</td>
+ <td colspan="1" rowspan="1">The execution of the component completed, i.e. all runnables in the list of runnables of the component instance were executed at least once.</td>
+ </tr>
+ </table>
+ <p>If it is required to define an event like "start-event of
+ <strong>some</strong> process" then it is enough to create a object of type
+ <i>ProcessEvent</i> and set the event-type
+ <i>start</i>.
+ </p>
+ <p>It is also possible to restrict the definition of an event to a special entity. So it can be defined like "start-event of task T_1". Therefore it is possible to reference a process from
+ <i>ProcessEvent</i>. In general, each event class can reference an entity of the corresponding type. In addition to that, each event class provides individual restrictions. So it is possible for
+ <i>ProcessEvent</i> that the event is not only restricted to a special process, it can be also restricted to a core. So that would be like "start-event of task T_1 on core C_2". Another example is the class
+ <i>RunnableEvent</i>, it allows to restrict the event to a runnable, the process that executes the runnable and the core that executes the process.
+ </p>
+
+
+<h2><a id="section3.8">3.8 </a>Hardware Model</h2>
+ <p>The AMALTHEA hardware model is used to describe hardware systems which usually consist of several hierarchical elements which contain processing units, memories, connections etc. It is accessible through the
+ <i>HWModel</i> element and contains following top level elements:
+ </p>
+ <ul>
+ <li>Definitions</li>
+ <li>Domains</li>
+ <li>Features</li>
+ <li>Structures</li>
+ </ul>
+
+
+<h3><a id="section3.8.1">3.8.1 </a>Class Diagrams</h3>
+
+
+<h4><a id="section3.8.1.1"></a>Hardware model elements</h4>
+ <p>
+ <img class="scale" src="images/model_hw_main.png"/>
+ </p>
+
+
+<h4><a id="section3.8.1.2"></a>Hardware definitions and features</h4>
+ <p>
+ <img class="scale" src="images/model_hw_definition.png"/>
+ </p>
+
+
+<h4><a id="section3.8.1.3"></a>Hardware modules and access elements</h4>
+ <p>
+ <img class="scale" src="images/model_hw_module.png"/>
+ </p>
+
+
+<h4><a id="section3.8.1.4"></a>Hardware paths and destinations</h4>
+ <p>
+ <img class="scale" src="images/model_hw_access.png"/>
+ </p>
+
+
+<h3><a id="section3.8.2">3.8.2 </a>Element description</h3>
+ <p>The following tables describe the different model elements and their attributes in detail. For several elements short examples are attached.</p>
+
+
+<h4><a id="section3.8.2.1"></a>HwModel</h4>
+ <p>The
+ <em>HwModel</em> class is the root element of the hardware model. It always contains one or multiple
+ <em>HwStructures, PowerDomains</em> and
+ <em>FrequencyDomains</em> and optionally different
+ <em>HWFeaturesCategories</em> for the
+ <em>HwModule</em> definitions.
+ </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Attribute</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Value</th>
+ <th colspan="1" rowspan="1">Mul.</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Name</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Name of the hardware model</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Definitions</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwDefinition</td>
+ <td colspan="1" rowspan="1">*</td>
+ <td colspan="1" rowspan="1">Definitions of ProcessingUnits, Memories, Caches and ConnectionHandlers</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Domains</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwDomain</td>
+ <td colspan="1" rowspan="1">*</td>
+ <td colspan="1" rowspan="1">Frequency- and PowerDomains</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">FeatureCategories</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwFeatureCategory</td>
+ <td colspan="1" rowspan="1">*</td>
+ <td colspan="1" rowspan="1">FeatureCategory for the HwModel including HwFeatures</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Structures</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwStructure</td>
+ <td colspan="1" rowspan="1">*</td>
+ <td colspan="1" rowspan="1">Hierarchical structure of the hardware model</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section3.8.2.2"></a>HwDefinition</h4>
+ <p>Additional information about the definition concept in general can be found in the User Guide --&gt; Concepts --&gt; Hardware --&gt; General Hardware Model Overview</p>
+
+
+<h5><a id="section3.8.2.2.1"></a>ProcessingUnitDefinition</h5>
+ <p>For specifying a compute resource a
+ <em>ProcessingUnitDefinition</em> is created, which is afterwards referenced by the number of
+ <em>ProcessingUnit</em> instances of this kind. A
+ <em>ProcessingUnitDefinition</em> can reference multiple
+ <em>HwFeatures</em> to express different costs for different operations but only one
+ <em>HwFeature</em> per
+ <em>HwFeatureCategory</em>.
+ </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Attribute</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Value</th>
+ <th colspan="1" rowspan="1">Mul.</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Name</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Name of the processing unit definition</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">PuType</td>
+ <td colspan="1" rowspan="1">Enum</td>
+ <td colspan="1" rowspan="1">PuType</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Type of the processing unit e.g. (Core, GPU, etc.)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Features</td>
+ <td colspan="1" rowspan="1">Reference</td>
+ <td colspan="1" rowspan="1">HwFeature</td>
+ <td colspan="1" rowspan="1">*</td>
+ <td colspan="1" rowspan="1">Hardware features of the definition</td>
+ </tr>
+ </table>
+
+
+<h5><a id="section3.8.2.2.2"></a>MemoryDefinition</h5>
+ <p>For specifying a memory, a
+ <em>MemoryDefinition</em> is created, which is afterwards referenced by the number of
+ <em>Memory</em> instances of this kind.
+ </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Attribute</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Value</th>
+ <th colspan="1" rowspan="1">Mul.</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Name</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Name of the memory definition</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">AccessLatency</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwLatency</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Constant or distribution of access latency in cycles</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">DataRate</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">DataRate</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Max. data rate for the memory</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Size</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">Size</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Size of the memory</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">MemoryType</td>
+ <td colspan="1" rowspan="1">Enum</td>
+ <td colspan="1" rowspan="1">MemoryType</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">type of the memory (e.g. DRAM, Flash, SRAM, PCM)</td>
+ </tr>
+ </table>
+
+
+<h5><a id="section3.8.2.2.3"></a>CacheDefinition</h5>
+ <p>For specifying a cache, a
+ <em>CacheDefinition</em> is created, which is afterwards referenced by the number of
+ <em>Cache</em> instances of this kind.
+ </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Attribute</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Value</th>
+ <th colspan="1" rowspan="1">Mul.</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Name</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Name of the memory definition</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">AccessLatency</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwLatency</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Constant or distribution of access latency in cycles</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Size</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">Size</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Size of the memory</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">CacheType</td>
+ <td colspan="1" rowspan="1">Enum</td>
+ <td colspan="1" rowspan="1">CacheType</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Cache type (e.g. data, instruction)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">WriteStrategy</td>
+ <td colspan="1" rowspan="1">Enum</td>
+ <td colspan="1" rowspan="1">WriteStrategy</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Cache write strategy (e.g. write-back)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Coherency</td>
+ <td colspan="1" rowspan="1">Bool</td>
+ <td colspan="1" rowspan="1">Bool</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Cache coherency (default = false)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Exclusive</td>
+ <td colspan="1" rowspan="1">Bool</td>
+ <td colspan="1" rowspan="1">Bool</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Exclusive cache (default = false)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Line Size</td>
+ <td colspan="1" rowspan="1">Int</td>
+ <td colspan="1" rowspan="1">Int</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Line size in bits</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Hit Rate</td>
+ <td colspan="1" rowspan="1">Double</td>
+ <td colspan="1" rowspan="1">Double</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Percentage hit rate of the cache(default = 0.0)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">NWays</td>
+ <td colspan="1" rowspan="1">Int</td>
+ <td colspan="1" rowspan="1">Int</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">N ways associative (default = 0)</td>
+ </tr>
+ </table>
+
+
+<h5><a id="section3.8.2.2.4"></a>ConnectionHandlerDefinition</h5>
+ <p>For specifying a bus or Interconnect etc., a
+ <em>ConnectionHandlerDefinition</em> is created, which is afterwards referenced by the number of
+ <em>ConnectionHandler</em> instances of this kind.
+ </p>
+ <p>
+ <img class="scale" src="images/hw_connection_handler_parallel_accesses_1.png"/>
+ </p>
+ <p>The figures shows an example of the attribute
+ <em>MaxConcurrentTransfers</em> with the default value 1. This means that all
+ <em>ConnectionHandlers</em> which are referencing this
+ <em>ConnectionHandlerDefinition</em> can only handle 1 active transfer request at a time. All other requests have to wait until the current transfers has finished.
+ </p>
+ <p>The next figure shows an example with a number of
+ <em>MaxConcurrentTransfers</em> of 3. In this case the
+ <em>ConnectionHandler</em> can handle up to 3 concurrent requests.
+ </p>
+ <p>
+ <img class="scale" src="images/hw_connection_handler_parallel_accesses_3.png"/>
+ </p>
+ <p>The value for
+ <em>MaxConcurrentTransfers</em> has to be smaller or equal then the min(initiator ports, responder ports).
+ </p>
+ <p>The values for
+ <em>DataRate</em>,
+ <em>ReadLatency</em>, and WriteLatency are default values for all
+ <em>ConnectionHandlers</em> of this kind. For a specific
+ <em>InternalConnection</em> in a
+ <em>ConnectionHandler</em> instance other values can be assigned.
+ </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Attribute</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Value</th>
+ <th colspan="1" rowspan="1">Mul.</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Name</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Name of the memory definition</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">SchedPolicy</td>
+ <td colspan="1" rowspan="1">Enum</td>
+ <td colspan="1" rowspan="1">SchedPolicy</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Enumeration of different scheduling policies</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">ReadLatency</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwLatency</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Constant or distribution in cycles for a read access</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">WriteLatency</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwLatency</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Constant or distribution in cycles for a write access</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">DataRate</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">DataRate</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Max. data rate of the connection (value and unit)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">MaxBurstSize</td>
+ <td colspan="1" rowspan="1">Int</td>
+ <td colspan="1" rowspan="1">Int</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Maximum burst size of a ConnectionHandler (default = 1)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">MaxConcurrentTransfers</td>
+ <td colspan="1" rowspan="1">Int</td>
+ <td colspan="1" rowspan="1">Int</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Number of concurrent transfers from different initiator to responder ports (default = 1)</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section3.8.2.3"></a>HwStructure</h4>
+ <p>A
+ <em>HwStructure</em> is a hierarchical element which can contain all kind of
+ <em>HwModules</em>,
+ <em>HwConnections</em> and other
+ <em>HwStructures</em>. Different
+ <em>HwStructures</em> can be connected via one or more
+ <em>HwPorts</em> with other structures or modules of a top level
+ <em>HwStructures</em>. By combining different
+ <em>HwStructures</em> any kind of hierarchical system can be expressed. By setting the structure type attribute (e.g. Cluster, ECU) the structural level in the hardware is directly expressible.
+ </p>
+ <p>
+ <img class="scale" src="images/hw_structure_example.png"/>
+ </p>
+ <p>The figure shows an example for creating a hierarchy within an E/E-architecture. The
+ <em>HwStructure System</em> (which is called "System") is created as top level structure within the HwModel. It contains three other structures which represents different ECUs. The structures are connected via
+ <em>HwPorts</em>,
+ <em>HwConnections</em> and a
+ <em>ConnectionHandler</em>. Usually structures in the model can be viewed as black boxes which can be connected via
+ <em>HwPorts</em>.
+ <em>ECU3</em> allows a look inside, where additional structures for two SoCs are visible.
+ </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Attribute</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Value</th>
+ <th colspan="1" rowspan="1">Mul.</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Name</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Name of the hardware structure</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">StructureType</td>
+ <td colspan="1" rowspan="1">Enum</td>
+ <td colspan="1" rowspan="1">StructureType</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Defines the type of the structure (e.g. ECU)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Modules</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwModule</td>
+ <td colspan="1" rowspan="1">*</td>
+ <td colspan="1" rowspan="1">Modules of the structure (e.g. Memory)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Ports</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwPort</td>
+ <td colspan="1" rowspan="1">*</td>
+ <td colspan="1" rowspan="1">Ports to connect the structure (always delegated Ports)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Structures</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwStructure</td>
+ <td colspan="1" rowspan="1">*</td>
+ <td colspan="1" rowspan="1">Hardware structure to build hierarchical designs</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Connections</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwConnection</td>
+ <td colspan="1" rowspan="1">*</td>
+ <td colspan="1" rowspan="1">Connections within a structure</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section3.8.2.4"></a>HwDomain</h4>
+ <p>
+ <img class="scale" src="images/hw_domain_example.png"/>
+ </p>
+ <p>The figure shows an example for
+ <em>HwDomain</em> (
+ <em>FrequencyDomain</em> and a
+ <em>PowerDomain</em>). They are always created at the top level in the root element
+ <em>HwModel</em>. Every basic component is able to reference a
+ <em>FrequencyDomain</em> and a
+ <em>PowerDomain</em>.
+ <em>(Note: The link between domains and modules are only references, there are no visible connections inside the model)</em>
+ </p>
+
+
+<h5><a id="section3.8.2.4.1"></a>FrequencyDomain</h5>
+ <p>A
+ <em>FrequencyDomain</em> is inherited from
+ <em>HwDomain</em>. This element describes a frequency domain which can be referenced by all elements of the type
+ <em>HwModule</em> to define the default frequency value for operation. In future the
+ <em>FrequencyDomain</em> should also contain possibleValues which should specify the different frequencies for different operation modes.
+ </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Attribute</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Value</th>
+ <th colspan="1" rowspan="1">Mul.</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Name</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Name of the frequency domain</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">DefaultValue</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">Frequency</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Default frequency value</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Clock Gating</td>
+ <td colspan="1" rowspan="1">Boolean</td>
+ <td colspan="1" rowspan="1">Boolean</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Possibility to power down the domain (default = false)</td>
+ </tr>
+ </table>
+
+
+<h5><a id="section3.8.2.4.2"></a>PowerDomain</h5>
+ <p>A
+ <em>PowerDomain</em> is inherited from
+ <em>HwDomain</em>. This element describes a power domain which can be referenced by all elements of the type
+ <em>HwModule</em>, to define the default voltage value for operation. In future the
+ <em>PowerDomain</em> should also contain possibleValues which should specify the different voltages for different operation modes.
+ </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Attribute</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Value</th>
+ <th colspan="1" rowspan="1">Mul.</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Name</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Name of the power domain</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">DefaultValue</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">Voltage</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Default voltage value</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">PowerGating</td>
+ <td colspan="1" rowspan="1">Boolean</td>
+ <td colspan="1" rowspan="1">Boolean</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Possibility to power down the domain (default = false)</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section3.8.2.5"></a>HwFeature</h4>
+ <p>A
+ <em>HwFeature</em> is an abstract element to represent any kind of special functionality of a
+ <em>ProcessingUnitDefinition</em>.
+ <em>HwFeatures</em> could be reused several times by different definitions and organized within
+ <em>HwFeatureCategories</em>. Currently this
+ <em>HwFeatureCategories</em> are directly referenced out of the Software Model in future the cost function (
+ <em>Recipes</em>) of an algorithm will be placed in an additional intermediate layer. More information can be found in the User Guide --&gt; Concepts --&gt; Hardware.
+ </p>
+ <p><em>NOTE: The concepts "Recipe" and "Hardware Features" are work in progress. Changes to the
+ already implemented HwFeatures are probable.</em>
+ </p>
+ <p>
+ <img class="scale" src="images/hw_feature_example.png"/>
+ </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Attribute</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Value</th>
+ <th colspan="1" rowspan="1">Mul.</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Name</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Name of the hardware feature</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Value</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">Value</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">assigned factor to the corresponding feature</td>
+ </tr>
+ </table>
+
+
+<h5><a id="section3.8.2.5.1"></a>HwFeatureCategory</h5>
+ <p>The
+ <em>HwFeatureCategory</em> is an element to collect the same kind of
+ <em>HwFeatures</em> with different values.
+ <br>The
+ <em>HwFeatureCategories</em> can be referenced by the
+ <em>ExecutionNeeds</em> in the Software Model.
+ </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Attribute</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Value</th>
+ <th colspan="1" rowspan="1">Mul.</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Name</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Name of the hardware feature</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Type</td>
+ <td colspan="1" rowspan="1">Enum</td>
+ <td colspan="1" rowspan="1">HwFeatureType</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Type to express the purpose of the feature (performance, power, performance_and_power)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Description</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Textual description of the hardware feature</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">HwFeature</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwFeature</td>
+ <td colspan="1" rowspan="1">*</td>
+ <td colspan="1" rowspan="1">Hardware feature with a factor</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section3.8.2.6"></a>HwModule</h4>
+
+
+<h5><a id="section3.8.2.6.1"></a>ProcessingUnit</h5>
+ <p>A
+ <em>ProcessingUnit</em> is a
+ <em>HwModule</em> that can be used to model a wide set of different hardware components like a GPU, hardware accelerator, CPU, etc. The capability and the functionality of a
+ <em>ProcessingUnit</em> are represented by different
+ <em>HwFeatures</em> within the
+ <em>ProcessingUnitDefinition</em>. The
+ <em>ProcessingUnits</em> are the master modules in the model and every
+ <em>ProcessingUnit</em> can has their own access space. The
+ <em>ProcessingUnit</em> can be referenced by
+ <em>AccessPaths</em> and
+ <em>HwAccessElements</em>.
+ </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Attribute</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Value</th>
+ <th colspan="1" rowspan="1">Mul.</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Name</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Name of the processing unit instance</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Ports</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwPort</td>
+ <td colspan="1" rowspan="1">*</td>
+ <td colspan="1" rowspan="1">Ports of the component</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Caches</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">Cache</td>
+ <td colspan="1" rowspan="1">*</td>
+ <td colspan="1" rowspan="1">Included caches by the Processing Unit e.g. L1 Cache</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">AccessElements</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">AccessElement</td>
+ <td colspan="1" rowspan="1">*</td>
+ <td colspan="1" rowspan="1">Access element for a specific memory or processing unit</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">FrequencyDomain</td>
+ <td colspan="1" rowspan="1">Reference</td>
+ <td colspan="1" rowspan="1">FrequencyDomain</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Frequency domain which supplies the module with a frequency</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">PowerDomain</td>
+ <td colspan="1" rowspan="1">Reference</td>
+ <td colspan="1" rowspan="1">PowerDomain</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Power domain which supplies the module with a voltage</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Definition</td>
+ <td colspan="1" rowspan="1">Reference</td>
+ <td colspan="1" rowspan="1">ProcessingUnitDefinition</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Definition with all features for the processing unit instance</td>
+ </tr>
+ </table>
+
+
+<h5><a id="section3.8.2.6.2"></a>Memory</h5>
+ <p>A
+ <em>Memory</em> is a component of type
+ <em>HwModule</em> to express any kind memory like SRAM (Scratchpads), DRAM, Flash, etc. in the model, caches are modeled separately. The
+ <em>Memory</em> element can be referenced as destination by a
+ <em>HwAccessElement</em>.
+ </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Attribute</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Value</th>
+ <th colspan="1" rowspan="1">Mul.</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Name</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Name of the memory instance</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Ports</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwPort</td>
+ <td colspan="1" rowspan="1">*</td>
+ <td colspan="1" rowspan="1">Ports of the component</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">FrequencyDomain</td>
+ <td colspan="1" rowspan="1">Reference</td>
+ <td colspan="1" rowspan="1">FrequencyDomain</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Frequency domain which supplies the module with a frequency</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">PowerDomain</td>
+ <td colspan="1" rowspan="1">Reference</td>
+ <td colspan="1" rowspan="1">PowerDomain</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Power domain which supplies the module with a voltage</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Definition</td>
+ <td colspan="1" rowspan="1">Reference</td>
+ <td colspan="1" rowspan="1">MemoryDefinition</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Definition with all features for the memory instance</td>
+ </tr>
+ </table>
+
+
+<h5><a id="section3.8.2.6.3"></a>Cache</h5>
+ <p>A
+ <em>Cache</em> is a component of type
+ <em>HwModule</em> to express the special behavior of a
+ <em>Cache</em>. It is used to create cache topologies within a system. The
+ <em>Cache</em> can be referenced by
+ <em>AccessPaths</em> to express if it is a cached or non-cached access. It is also the only
+ <em>HwModule</em> which can be directly contained by a
+ <em>ProcessingUnit</em>.
+ </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Attribute</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Value</th>
+ <th colspan="1" rowspan="1">Mul.</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Name</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Name of the cache instance</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Ports</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwPort</td>
+ <td colspan="1" rowspan="1">*</td>
+ <td colspan="1" rowspan="1">Ports of the component</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">FrequencyDomain</td>
+ <td colspan="1" rowspan="1">Reference</td>
+ <td colspan="1" rowspan="1">FrequencyDomain</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Frequency domain which supplies the module with a frequency</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">PowerDomain</td>
+ <td colspan="1" rowspan="1">Reference</td>
+ <td colspan="1" rowspan="1">PowerDomain</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Power domain which supplies the module with a voltage</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Definition</td>
+ <td colspan="1" rowspan="1">Reference</td>
+ <td colspan="1" rowspan="1">CacheDefinition</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Definition with all features for the cache instance</td>
+ </tr>
+ </table>
+
+
+<h5><a id="section3.8.2.6.4"></a>ConnectionHandler</h5>
+ <p>A
+ <em>ConnectionHandler</em> is a component of type HwModule which can be used whenever multiple
+ <em>HwConnections, (HwPorts)</em> have to be combined. It is possible to represent whole bus systems or interconnects with a single
+ <em>ConnectionHandler</em>, or elements like small routers within a NoC.
+ </p>
+ <p>
+ <img class="scale" src="images/hw_connection_handler_example.png"/>
+ </p>
+ <p>The figure shows an example where a
+ <em>ConnectionHandler</em> is used as an interconnect within a SoC. Optional it is possible to model
+ <em>InternalConnections</em> inside a
+ <em>ConnectionHandler</em> to model explicit or restrict different connections. However it is also possible to use default read and write latencies of the whole
+ <em>ConnectionHandlerDefinition</em>, individual latencies can be attached to
+ <em>InternalConnections</em>. A short example where a
+ <em>ConnectionHandler</em> is used as a CAN bus is illustrated in the structure example. For detailed models where all modules connected via
+ <em>HwConnections</em> and different
+ <em>ConnectionHandlers</em>, the
+ <em>ConnectionHandlers</em> should be the only module where contentions in the hardware model can occur. A
+ <em>ConnectionHandler</em> can be referenced by
+ <em>HwAccessPaths</em>.
+ </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Attribute</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Value</th>
+ <th colspan="1" rowspan="1">Mul.</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Name</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Name of the connection handler instance</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Ports</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwPort</td>
+ <td colspan="1" rowspan="1">*</td>
+ <td colspan="1" rowspan="1">Ports of the component</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">InternalConnections</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwConnection</td>
+ <td colspan="1" rowspan="1">*</td>
+ <td colspan="1" rowspan="1">Internal connection between the ports</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">FrequencyDomain</td>
+ <td colspan="1" rowspan="1">Reference</td>
+ <td colspan="1" rowspan="1">FrequencyDomain</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Frequency domain which supplies the module with a frequency</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">PowerDomain</td>
+ <td colspan="1" rowspan="1">Reference</td>
+ <td colspan="1" rowspan="1">PowerDomain</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Power domain which supplies the module with a voltage</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Definition</td>
+ <td colspan="1" rowspan="1">Reference</td>
+ <td colspan="1" rowspan="1">ConnectionHandlerDefinition</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Definition with all features for the connection handler instance</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section3.8.2.7"></a>HwAccessElement</h4>
+ <p>A
+ <em>HwAccessElement</em> can be used to specify the access relationship between two
+ <em>ProcessingUnits</em> or a
+ <em>ProcessingUnit</em> and a
+ <em>Memory</em>. With multiple
+ <em>HwAccessElements</em> the whole access or even address space of a
+ <em>ProcessingUnit</em> can be represented. A
+ <em>HwAccessElement</em> represents always the view from a specific
+ <em>ProcessingUnit</em>. There exist two different approaches to express latency or a data rate for a
+ <em>HwAccessElement</em>: 1. directly using latencies or data rates or 2. modeling the exact path to the destination by attaching a
+ <em>HwAccessPath</em> which references the specific connection elements like
+ <em>ConnectionHandlers</em>,
+ <em>HwConnection</em>, etc. For the second approach it is also possible to work directly with addresses.
+ </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Attribute</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Value</th>
+ <th colspan="1" rowspan="1">Mul.</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Name</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Name of the address element</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Destination</td>
+ <td colspan="1" rowspan="1">Reference</td>
+ <td colspan="1" rowspan="1">HwDestination</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Destination for the processing unit</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">AccessPaths</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwAccessPath</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Access path to the destination</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">ReadLatency</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwLatency</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Read latency to the destination</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">WriteLatency</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwLatency</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Write latency to the destination</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">DataRate</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">DataRate</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Max. data rate to the destination</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section3.8.2.8"></a>HwPort</h4>
+ <p>
+ <em>HwPorts</em> are elements which can be connected via
+ <em>HwConnections</em>. Every module can contain multiple
+ <em>HwPorts</em>. Every communication, input or output is handled via a
+ <em>HwPort</em> of a component. It is only allowed to have one
+ <em>HwConnection</em> per
+ <em>HwPort</em>, except the
+ <em>HwPort</em> is categorized as delegated port which means it is just a hierarchical connection between
+ <em>HwStructures</em>. In this case the ports can have two
+ <em>HwConnections</em>. The second exception is if inside a
+ <em>ConnectionHandler</em>,
+ <em>InternalConnections</em> are used.In this case a
+ <em>HwPort</em> can be directed with a
+ <em>HwConnection</em> and
+ <em>InternalConnections</em>. The following figure shows an example with delegated
+ <em>HwPorts</em> and
+ <em>InternalConnections</em>.
+ </p>
+ <p>
+ <img class="scale" src="images/hw_port_example.png"/>
+ </p>
+ <p>In case the
+ <em>BitWidth</em> becomes important (e.g. to calculate the amount of data which is transfered over an
+ <em>ConnectionHandler</em>) the minimum
+ <em>BithWidth</em> of all included Ports have to be accounted.
+ </p>
+ <p>For
+ <em>HwPorts</em> it's always possible to select if the port is an
+ <em>initiator</em> or a
+ <em>responder</em> port. The following example shows that an initiator port is always connected to a responder port (comparable to TLM modeling).
+ </p>
+ <p>
+ <img class="scale" src="images/hw_port_example_i_r.png"/>
+ </p>
+ <p>In case of a delegated port (which is used as hierarchical port at a
+ <em>HwStructure</em>) the
+ <em>PortType</em> of the module inside the structure is reflected. The following figure shows four different examples. The ports which are delegated are marked grey.
+ </p>
+ <p>
+ <img class="scale" src="images/hw_port_example_i_r_with_delegated_ports.png"/>
+ </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Attribute</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Value</th>
+ <th colspan="1" rowspan="1">Mul.</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Name</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Name of the hardware port</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">BitWidth</td>
+ <td colspan="1" rowspan="1">Int</td>
+ <td colspan="1" rowspan="1">Int</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Bit width e.g. 32 bit (default = 0)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Priority</td>
+ <td colspan="1" rowspan="1">Int</td>
+ <td colspan="1" rowspan="1">Int</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Priority of the hardware port (default = 0)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Type</td>
+ <td colspan="1" rowspan="1">Enum</td>
+ <td colspan="1" rowspan="1">PortType</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Port type (initiator, responder)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Delegated</td>
+ <td colspan="1" rowspan="1">Bool</td>
+ <td colspan="1" rowspan="1">Bool</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Delegated ports are hierarchical structure ports</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">PortInterface</td>
+ <td colspan="1" rowspan="1">Enum</td>
+ <td colspan="1" rowspan="1">PortInterface</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Type to express special interfaces for validation</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section3.8.2.9"></a>HwConnection</h4>
+ <p>A
+ <em>HwConnection</em> is an element to model structural connections between two
+ <em>HwPorts</em>.
+ <em>HwConnections</em> are always placed within
+ <em>HwStructures</em>. It is possible to directly annotate a read and write latency at a
+ <em>HwConnection</em>.
+ <em>HwConnections</em> can be referenced by
+ <em>HwAccessPaths</em>. The HwConnection do not have a reference to a
+ <em>FrequencyDomain</em>, the frequency is always provided by the element which is in front of the
+ <em>HwConnection</em> in the
+ <em>HwAccessPath</em>.
+ </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Attribute</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Value</th>
+ <th colspan="1" rowspan="1">Mul.</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Name</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Name of the hardware connection</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Port1</td>
+ <td colspan="1" rowspan="1">Reference</td>
+ <td colspan="1" rowspan="1">HwPort</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Port1 for the connection</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Port2</td>
+ <td colspan="1" rowspan="1">Reference</td>
+ <td colspan="1" rowspan="1">HwPort</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Port2 for the connection</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">ReadLatency</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwLatency</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Constant or distribution in cycles for a read access</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">WriteLatency</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">HwLatency</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Constant or distribution in cycles for a write access</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">DataRate</td>
+ <td colspan="1" rowspan="1">Containment</td>
+ <td colspan="1" rowspan="1">DataRate</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Max. data rate of the connection (value and unit)</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section3.8.2.10"></a>HwAccessPath</h4>
+ <p>A
+ <em>HwAccessPath</em> is an element to describe the connection route of a
+ <em>ProcessingUnit</em> to its destination (
+ <em>Memory</em> or
+ <em>ProcessingUnit</em>). The
+ <em>HwAccessPath</em> is defined through an ordered list of IPaths interface elements (
+ <em>HWConnections, Caches</em> and
+ <em>ConnectionHandlers</em>) and is a containment of an
+ <em>HwAccessElement</em>. The figure shows an example of an
+ <em>HwAccessPath</em>, how a
+ <em>ProcessingUnit</em> is connected via two
+ <em>HwConnections</em> and a
+ <em>ConnectionHandler</em> with a
+ <em>Memory</em>.
+ </p>
+ <p>
+ <img class="scale" src="images/hw_access_path_example.png"/>
+ </p>
+ <p>In the following example the possible memOffset attribute is explained. Every
+ <em>ProcessingUnit</em> can access a
+ <em>Memory</em> or other
+ <em>ProcessingUnit</em> over a different address. The size of the
+ <em>Memory</em> has to be equal or greater than
+ <em>endAddress</em> minus the
+ <em>startAddress</em>.
+ </p>
+ <ul>
+ <li>memory_size &gt;= endAddress – startAddress</li>
+ </ul>
+ <p>In the case the the
+ <em>ProcessingUnit</em> should not start at address 0 (from the memory point of view) the
+ <em>memOffset</em> attribute can be used. With help of this attribute the access area for the memory can be changed, the following figure shows an example.
+ </p>
+ <p>
+ <img class="scale" src="images/hw_memory_address_example.png"/>
+ </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Attribute</th>
+ <th colspan="1" rowspan="1">Type</th>
+ <th colspan="1" rowspan="1">Value</th>
+ <th colspan="1" rowspan="1">Mul.</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Name</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">String</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Name of the hardware access path</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">PathElements</td>
+ <td colspan="1" rowspan="1">Reference</td>
+ <td colspan="1" rowspan="1">HwPath</td>
+ <td colspan="1" rowspan="1">*</td>
+ <td colspan="1" rowspan="1">Path elements for the access path</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">StartAddress</td>
+ <td colspan="1" rowspan="1">Long</td>
+ <td colspan="1" rowspan="1">Long</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Start address for the memory</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">EndAddress</td>
+ <td colspan="1" rowspan="1">Long</td>
+ <td colspan="1" rowspan="1">Long</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">End address for the memory</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">MemOffset</td>
+ <td colspan="1" rowspan="1">Long</td>
+ <td colspan="1" rowspan="1">Long</td>
+ <td colspan="1" rowspan="1">1</td>
+ <td colspan="1" rowspan="1">Offset for accessing only a partition of a memory</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section3.8.2.11"></a>Enumerations</h4>
+ <p>In the following all enums are listed. In the case an enum is used by any class the default value of that enum is always
+ <em>undefined</em>. That means that in case of an enum there are no default values for interfaces or other kind of types. Moreover only new enums are explicitly mentioned in this report. Enums and classes which are already part of the existing Amalthea meta model are not described.
+ </p>
+ <p>
+ <strong>StructureType:</strong>
+ </p>
+ <ul>
+ <li>_undefined_, System, ECU, Microcontroller, SoC, Cluster, Group, Array, Area, Region</li>
+ </ul>
+ <p>
+ <strong>CacheType:</strong>
+ </p>
+ <ul>
+ <li>_undefined_, instruction, data, unified</li>
+ </ul>
+ <p>
+ <strong>VoltageUnit:</strong>
+ </p>
+ <ul>
+ <li>_undefined_, V, mV, uV</li>
+ </ul>
+ <p>
+ <strong>PortType:</strong>
+ </p>
+ <ul>
+ <li>_undefined_, initiator, responder</li>
+ </ul>
+ <p>
+ <strong>SchedPolicy:</strong>
+ </p>
+ <ul>
+ <li>_undefined_, RoundRobin, FCFS, PriorityBased</li>
+ </ul>
+ <p>
+ <strong>WriteStrategy:</strong>
+ </p>
+ <ul>
+ <li>_undefined_, none, writeback, writethrough</li>
+ </ul>
+ <p>
+ <strong>PuType:</strong>
+ </p>
+ <ul>
+ <li>_undefined_, GPU, CPU, Accelerator</li>
+ </ul>
+ <p>
+ <strong>PortInterfaces:</strong>
+ </p>
+ <ul>
+ <li>_undefined_, custom, can, flexray, lin, most, ethernet, spi, i2c, axi, ahb, apb, swr</li>
+ </ul>
+ <p>
+ <strong>HwFeatureType:</strong>
+ </p>
+ <ul>
+ <li>_undefined_, performance, power, performance_and_power</li>
+ </ul>
+ <p>
+ <strong>MemoryType:</strong>
+ </p>
+ <ul>
+ <li>_undefined_, DRAM, SRAM, FLASH, PCM</li>
+ </ul>
+
+
+<h2><a id="section3.9">3.9 </a>Mapping Model</h2>
+ <p>The mapping model is intended to provide tools that use hardware and software models (e.g. code generators) information about the corresponding mappings and allocations. This information contains associations between</p>
+ <ul>
+ <li>schedulers and executable software: A scheduler manages and distributes executable software like runnables or tasks on its managed processing units</li>
+ <li>schedulers and processing units: A scheduler can manage one or more processing units and deploy computations on these</li>
+ <li>data and memories: Data (such as functions, variables, heap etc) is mapped on static and volatile memories</li>
+ </ul>
+
+
+<h3><a id="section3.9.1">3.9.1 </a>Overview</h3>
+ <p>The Meta Model specifying the Mapping Model is shown below. </p>
+ <p>
+ <img class="scale" src="images/model_mapping_overview.png"/>
+ </p>
+
+
+<h4><a id="section3.9.1.1"></a>MappingModel</h4>
+ <p>The
+ <i>MappingModel</i> serves as a container for each of the mapping rules, i.e.
+ <i>Allocations</i> (executable software and processing units which are allocated to schedulers) and
+ <i>Mappings</i> (labels and software which is mapped to memories).
+ </p>
+
+
+<h3><a id="section3.9.2">3.9.2 </a>Allocations</h3>
+ <p>
+ <img class="scale" src="images/model_mapping_allocation.png"/>
+ </p>
+
+
+<h4><a id="section3.9.2.1"></a>SchedulerAllocation</h4>
+ <p>The
+ <i>SchedulerAllocation</i> describes the allocation of a
+ <i>Scheduler</i> to processing units. This class consists of references to the respective
+ <i>Scheduler</i>, which is specified within an existing OS model, and a processing units, which is specified in a hardware model. Schedulers with algorithm "Grouping" are not allocated since they take no decisions and produce no overhead.
+ </p>
+ <table class="minimal" style="padding:10px; border:1px solid black; background:#f8f8f8">
+ <tr>
+ <th colspan="1" rowspan="1">Name</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>scheduler</i>
+ </td>
+ <td colspan="1" rowspan="1">The scheduler (that is specified in more detail).</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>responsibility</i>
+ </td>
+ <td colspan="1" rowspan="1">Defines the processing units the scheduler is responsible for. On these units the scheduler takes decisions. Multiple schedulers can be responsible for one processing unit because of hierarchies. Child-schedulers only take decisions, if they parent-schedulers allows them to (e.g. hypervisors with virtual machines which execute an own operating system). Tasks allocated to this scheduler execute on the intersection between affinity and the responsibility of the scheduler. If this is null the configuration is invalid. If the intersection results in multiple cores, the task can migrate.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>executingPU</i>
+ </td>
+ <td colspan="1" rowspan="1">Defines on which processing unit the scheduling algorithm is actually executed to consider the overhead.</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section3.9.2.2"></a>RunnableAllocation</h4>
+ <p>The
+ <i>RunnableAllocation</i> is used to associate a
+ <i>Runnable</i>, specified within an existing software model, with a
+ <i>Scheduler</i>.
+ </p>
+
+
+<h4><a id="section3.9.2.3"></a>TaskAllocation</h4>
+ <p>The
+ <i>TaskAllocation</i> is used to associate a
+ <i>Task</i> with its
+ <i>TaskScheduler</i>.
+ </p>
+ <table class="minimal" style="padding:10px; border:1px solid black; background:#f8f8f8">
+ <tr>
+ <th colspan="1" rowspan="1">Name</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>task</i>
+ </td>
+ <td colspan="1" rowspan="1">The task (that is specified in more detail).</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>scheduler</i>
+ </td>
+ <td colspan="1" rowspan="1">Specifies the unique allocation to the scheduler of the task.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>affinity</i>
+ </td>
+ <td colspan="1" rowspan="1">Specifies the possible processing units the task can run. If only one unit is specified, the task runs on this core. If multiple cores are specified, the task can migrate between the units. The task executes on the intersection between affinity and the responsibility of the scheduler. If this is null the configuration is invalid. If the intersection results in multiple cores, the task can migrate.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>schedulingParameters</i>
+ </td>
+ <td colspan="1" rowspan="2">Used to assign scheduling parameters for this specific allocation. For details see chapter "Scheduling Parameters" in OS Model.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>parameterExtensions</i>
+ </td>
+ </tr>
+ </table>
+
+
+<h4><a id="section3.9.2.4"></a>ISRAllocation</h4>
+ <p>The
+ <i>ISRAllocation</i> is used to associate an
+ <i>ISR</i> with an
+ <i>InterruptConroller</i>. The attribute 'priority' can be used to assign a value for this specific allocation.
+ </p>
+
+
+<h3><a id="section3.9.3">3.9.3 </a>Mappings</h3>
+
+
+<h4><a id="section3.9.3.1"></a>MemoryMapping</h4>
+ <p>The
+ <i>MemoryMapping</i> is a class, describing the mapping of parts of the software model to
+ <i>Memory</i>. It is used to associate specializations of the
+ <i>AbstractMemoryElement</i> (i.e.
+ <i>Label</i>,
+ <i>Runnable</i>,
+ <i>TaskPrototype</i> and
+ <i>Process</i>). The target memory is specified by a reference to an explicit
+ <i>Memory</i> within an existing hardware model. The position in memory can also be defined as address here. If the address is a absolute memory address, a offset address from the memories first address, or if the address information is not expected at all is defined by the
+ <i>Memory Address Mapping Type</i> enumeration in the root element of the
+ <i>Mapping Model</i>. The Additional attributes, e.g. to supply further information for a code generator, may be described by the containment attributeList.
+ </p>
+
+
+<h4><a id="section3.9.3.2"></a>PhysicalSectionMapping</h4>
+ <p>The
+ <em>PhysicalSectionMapping</em> class (can also be called as
+ <strong>Physical Memory Section</strong> ) describes the following:
+ </p>
+ <ul>
+ <li>mapping of various
+ <strong>Section</strong> elements to a specific
+ <strong>Memory</strong>
+ </li>
+ <li>mapping various
+ <strong>Label and Runnable</strong> elements to a Physical Memory Section
+ </li>
+ <li>description of memory address location where the Physical Memory Section is allocated </li>
+ </ul>
+
+
+<h2><a id="section3.10">3.10 </a>Measurement Model</h2>
+ <p>The measurement model provides the possibility to store runtime measurements. The main purpose is to exchange measured times, either as a series of single values or as derived statistical data.</p>
+ <p>
+ <b>Warning</b>: This model has no connections to the configuration and should not be used for any kind of timing simulation inputs or automatic configuration tools. Its main purpose is to document a specific situation that has to be exchanged between development partners. Therefore the origin of the data should be clearly identifiable using additional info like "creator", "date" or "hardware" entered as custom attributes of
+ <i>MeasurementModel</i>.
+ </p>
+ <p>Changing the model should result in an invalidation of the measurement model. For use cases such as timing simulation the measurement model is of no importance and should be ignored.</p>
+ <p>Measurements refer to given elements of other model parts and can easily be exchanged (added, removed, updated).</p>
+ <p>
+ <img src="images/model_measurement.png"/>
+ </p>
+
+
+<h2><a id="section3.11">3.11 </a>OS Model</h2>
+ <p>This part of the AMALTHEA model describes the provided functionality of an operating system. It mainly provides a way to specify how access is given to certain system resources. Therefore the concepts of scheduling, buffering, and semaphores are supported, which are described in detail in the following chapter.</p>
+ <p>
+ <img src="images/model_os_overview.png"/>
+ </p>
+
+
+<h3><a id="section3.11.1">3.11.1 </a>Operating System</h3>
+ <p>The basic element in the OS Model is the operating system. There can be multiple operating systems in one model. The operating system type can be used to describe a generic operating system. It is also possible to use the vendor operating system type to define a vendor specific OS. An operating system contains a number of task schedulers and interrupt controllers. A task scheduler controls the execution of a task on one or multiple processor cores. An interrupt controller is the controller for the execution of ISRs and can be also mapped to multiple cores. The mapping of tasks and ISRs to their controller and the mapping of the controller to the cores can be done in the Mapping Model. An operating system can also contain a description of the overhead it produces. For this there is a more detailed explanation below. </p>
+ <p>
+ <img src="images/model_os_operatingsystem.png"/>
+ </p>
+
+
+<h3><a id="section3.11.2">3.11.2 </a>Scheduler</h3>
+ <p>Interrupt controller and task scheduler have a scheduling algorithm. The picture below shows that both types are inherited of the scheduler type. Each scheduler has computation items. These items (a subset of the runnable items) characterize the runtime behavior of the scheduler.</p>
+ <p>
+ <img src="images/model_os_scheduler.png"/>
+ </p>
+
+
+<h4><a id="section3.11.2.1"></a>Scheduling Algorithm</h4>
+ <p>This is an abstract class for the different scheduling algorithms.</p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Scheduling Algorithm</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Grouping</td>
+ <td colspan="1" rowspan="1">This scheduler is a logical grouping of tasks/child-schedulers, e.g. a partition with attached budget for all tasks. This scheduler does not take any scheduling decisions and a parent scheduler is mandatory.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">UserSpecificSchedulingAlgorithm</td>
+ <td colspan="1" rowspan="1">This class contains a list of algorithm parameters. Each parameter has a key and a value (both Strings). A user can store all information for its own specific scheduling algorithm here.</td>
+ </tr>
+ <tr>
+ <td colspan="2" rowspan="1" style="background:#e6ffe6;">Fixed Priority</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">OSEK</td>
+ <td colspan="1" rowspan="1">OSEK compliant Scheduling</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">FixedPriorityPreemptive</td>
+ <td colspan="1" rowspan="1">Fixed Priority Preemptive Scheduling (e.g. AUTOSAR)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">FixedPriorityPreemptiveWithBudgetEnforcement</td>
+ <td colspan="1" rowspan="1">Fixed Priority Preemptive Scheduling (with budget enforcement)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">DeadlineMonotonic</td>
+ <td colspan="1" rowspan="1">Deadline Monotonic Scheduling (DMS): Task with the shortest period gets the lowest priority.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">RateMonotonic</td>
+ <td colspan="1" rowspan="1">Rate Monotonic Scheduling (RMS): Task with the shortest period gets the highest priority.</td>
+ </tr>
+ <tr>
+ <td colspan="2" rowspan="1" style="background:#e6ffe6;">Dynamic Priority</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">EarliestDeadlineFirst</td>
+ <td colspan="1" rowspan="1">Earliest Deadline First (EDF): Task with the earliest deadline gets the highest priority.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">LeastLocalRemainingExecutionTimeFirst</td>
+ <td colspan="1" rowspan="1">Least Local Remaining Execution-time First (LLREF): Task with the smallest local remaining execution time gets the highest priority.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">PriorityBasedRoundRobin</td>
+ <td colspan="1" rowspan="1">Round Robin Scheduling Algorithm with prioritized processes.</td>
+ </tr>
+ <tr>
+ <td colspan="2" rowspan="1" style="background:#e6ffe6;">Proportionate Fair (Pfair)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">PfairPD2</td>
+ <td colspan="1" rowspan="1">Proportionate Fair PD<sup>2</sup> Scheduling (Pfair-PD<sup>2</sup>)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">PartlyPfairPD2</td>
+ <td colspan="1" rowspan="1">Partly Proportionate Fair PD<sup>2</sup> Scheduling (PPfair-PD<sup>2</sup>)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">EarlyReleaseFairPD2</td>
+ <td colspan="1" rowspan="1">Early Release Fair PD<sup>2</sup> Scheduling (ERfair-PD<sup>2</sup>)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">PartlyEarlyReleaseFairPD2</td>
+ <td colspan="1" rowspan="1">Partly Early Release Fair PD<sup>2</sup> Scheduling (P-ERfair-PD<sup>2</sup>)</td>
+ </tr>
+ <tr>
+ <td colspan="2" rowspan="1" style="background:#e6ffe6;">Reservation Based Server</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">DeferrableServer</td>
+ <td colspan="1" rowspan="1">Deferrable Server (DS): provides a fixed budget, in which the budget replenishment is done periodically.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">PollingPeriodicServer</td>
+ <td colspan="1" rowspan="1">Polling Server (PS): provides a fixed budget periodically that is only available at pre-defined times.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">SporadicServer</td>
+ <td colspan="1" rowspan="1">Sporadic Server (SS): provides a fixed budget, in which the budget replenishment is performed only if it was consumed.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">ConstantBandwidthServer</td>
+ <td colspan="1" rowspan="1">Constant Bandwidth Server (CBS): provides a fixed utilization for executing jobs, in which the deadline for execution is independent on the execution time of jobs.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">ConstantBandwidthServerWithCASH</td>
+ <td colspan="1" rowspan="1">Constant Bandwidth Server (CBS) with capacity sharing (CASH). Consumes residual slack from other servers (work conserving).</td>
+ </tr>
+ </table>
+
+
+<h5><a id="section3.11.2.1.1"></a>Further information</h5>
+ <p>Details regarding proportionate fair (
+ <strong>Pfair</strong>) scheduling and the variants of the
+ <strong>PD<sup>2</sup> Pfair</strong> algorithm can be found in the dissertation "Effcient and Flexible Fair Scheduling of Real-time Tasks on Multiprocessors" by Anand Srinivasan (see
+ <a href="https://www.cs.unc.edu/~anderson/diss/srinidiss.pdf">dissertation</a> at University of North Carolina at Chapel Hill).
+ </p>
+ <p>An overview regarding
+ <strong>Reservation Servers</strong> is given in the lecture "Resource Reservation Servers" by Jan Reineke (see
+ <a href="https://embedded.cs.uni-saarland.de/lectures/realtimesystems/resourceReservationServers.pdf">lecture</a> at Saarland University).
+ </p>
+
+
+<h4><a id="section3.11.2.2"></a>Scheduling Parameters</h4>
+ <p>The class SchedulingParameters contains predefined parameters that are relevant for many scheduling algorithms. If a parameter is not used in a given context the value is null. Additional parameters can be added as key-value pairs of class ParameterExtensions.</p>
+ <p>
+ <img src="images/model_os_scheduling_parameters.png"/>
+ </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Attribute</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>priority</i>
+ </td>
+ <td colspan="1" rowspan="1">Specifies the priority for the child-scheduler for priority based scheduling algorithms like FPP.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>minBudget</i>
+ </td>
+ <td colspan="1" rowspan="2">In budget-based scheduling algorithms like sporadic servers the runtime in a periodic time-interval must be given. The budget can be defined via min/max budgets. If no intervals are possible, the maxBudget is the key value.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>maxBudget</i>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>replenishment</i>
+ </td>
+ <td colspan="1" rowspan="1">The replenishment time defines period in which the budget is restored.</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section3.11.2.3"></a>Scheduler Association</h4>
+ <p>A hierarchy of schedulers can be specified with intermediate objects of class
+ <i>SchedulerAssociation</i>. If set, the parent scheduler takes the initial decision who is executing. If the child-scheduler is not a grouping of tasks, it can take scheduling decisions if permission is granted by the parent. The association also contains the relevant parameters of the scheduler in the hierarchical context.
+ </p>
+ <p>
+ <img src="images/model_os_scheduler_association.png"/>
+ </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Attribute</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>parent</i>
+ </td>
+ <td colspan="1" rowspan="1">Refers to the parent scheduler</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>child</i>
+ </td>
+ <td colspan="1" rowspan="1">Derived attribute that is computed based on the containment reference "parentAssociation" from
+ <i>Scheduler</i> to
+ <i>SchedulerAssociation</i>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>schedulingParameters</i>
+ </td>
+ <td colspan="1" rowspan="2">See chapter "Scheduling Parameters"</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>parameterExtensions</i>
+ </td>
+ </tr>
+ </table>
+
+
+<h3><a id="section3.11.3">3.11.3 </a>Os Overhead</h3>
+ <p>It is possible to define the overhead that is produced by an operating system. The defined overhead can be assigned to an operating system definition. Each overhead information is defined as a set of instructions that has to be executed when the corresponding OS function is used. The instructions can be either a constant set or a deviation of instructions. It is possible to define the overhead for the ISR category one and two and for a number of operating system API functions.</p>
+ <p>
+ <img src="images/model_os_osoverhead.png"/>
+ </p>
+
+
+<h4><a id="section3.11.3.1"></a>ISR Overhead</h4>
+ <ul>
+ <li>ISR category 1 &amp; 2: Describes the overhead for ISRs of category one and two by adding a set of instructions that is executed at start and terminate of the ISR </li>
+ </ul>
+
+
+<h4><a id="section3.11.3.2"></a>API Overhead</h4>
+ <p>There exists also an overhead for API calls. The following API calls are considered:</p>
+ <ul>
+ <li>API Activate Task: Runtime overhead for the activation of a task or ISR by another task or ISR (inside the activating process)</li>
+ <li>API Terminate Task: Runtime for explicit task termination call (inside a task)</li>
+ </ul>
+ <ul>
+ <li>API Schedule: Runtime for task scheduling (on scheduling request)</li>
+ </ul>
+ <ul>
+ <li>API Request Resource: Runtime overhead for requesting a semaphore (inside a runnable)</li>
+ <li>API Release Resource: Runtime overhead for releasing a semaphore (inside a runnable)</li>
+ </ul>
+ <ul>
+ <li>API Set Event: Runtime overhead for requesting an OS event (inside a task or ISR)</li>
+ <li>API Wait Event: Runtime overhead for waiting for an OS event (inside a task or ISR)</li>
+ <li>API Clear Event: Runtime overhead for clearing an OS event (inside a task or ISR)</li>
+ </ul>
+ <ul>
+ <li>API Send Message: Runtime overhead for cross-core process activation or event (inside a task or ISR) </li>
+ <li>API Enforced Migration: Runtime overhead for migrating from one scheduler to another scheduler (inside a task or ISR)</li>
+ </ul>
+ <ul>
+ <li>API Suspend OsInterrupts</li>
+ <li>API Resume OsInterrupts</li>
+ </ul>
+ <ul>
+ <li>API Request Spinlock</li>
+ <li>API Release Spinlock</li>
+ </ul>
+ <ul>
+ <li>API SenderReceiver Read</li>
+ <li>API SenderReceiver Write</li>
+ </ul>
+ <ul>
+ <li>API SynchronousServerCallPoint</li>
+ </ul>
+ <ul>
+ <li>API IOC Read</li>
+ <li>API IOC Write</li>
+ </ul>
+
+
+<h3 id="os-data-consistency"><a id="section3.11.4">3.11.4 </a>OS Data Consistency</h3>
+ <p>The
+ <i>OsDataConsistency</i> class provides a way to configure an automatic data consistency mechanism of an operating system. It is used to cover the following two use cases:
+ </p>
+ <ul>
+ <li>Provide a configuration for external tools that perform a data consistency calculation based on the stated information.</li>
+ <li>Provide the results of a performed data consistency calculation which then have to be considered by external tools (e.g. by timing simulation).</li>
+ </ul>
+ <p>
+ <img src="images/model_os_data_consistency.png"/>
+ </p>
+ <p>To distinguish the different use cases and to consequently also indicate the workflow progress for achieving data consistency,
+ <i>OsDataConsistencyMode</i> allows to define the general configuration of the data consistency. The following modes are available:
+ </p>
+ <ol>
+ <li>noProtection: data stability and coherency is NOT automatically ensured.</li>
+ <li>automaticProtection: data stability and coherency HAS TO BE ensured according configuration either via custom protection or via model elements.
+ <ol>
+ <li>customProtection: data stability and coherency IS ensured according configuration but not via model elements.</li>
+ <li>handeldByModelElements: data stability and coherency IS ensured via model elements.</li>
+ </ol>
+ </li>
+ </ol>
+ <p>The
+ <i>DataStability</i> class defines for which sequence of runnables data has to be kept stable. Furthermore, it can be stated whether all data is considered for stability or just those accessed multiple times.
+ </p>
+ <p>DataStabilityLevel:</p>
+ <ul>
+ <li>
+ <i>period</i> - between consecutive activations
+ </li>
+ <li>
+ <i>process</i> - within a Task or ISR
+ </li>
+ <li>
+ <i>scheduleSection</i> - between Schedule points (explizit schedule points, begin and end of process)
+ </li>
+ <li>
+ <i>runnable</i> - within a Runnable
+ </li>
+ </ul>
+ <p>The
+ <i>NonAtomicDataCoherency</i> class defines for which sequence of runnables data has to be kept coherent. Like for data stability it can be stated whether all data is considered for coherency or just those accessed multiple times.
+ </p>
+
+
+<h3><a id="section3.11.5">3.11.5 </a>Semaphore</h3>
+ <p>With this object, a semaphore can be described which limits the access of several processes to one resource at the same time.</p>
+ <p>
+ <img src="images/model_os_semaphore.png"/>
+ </p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Attribute</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>name</i>
+ </td>
+ <td colspan="1" rowspan="1">Name of semaphore (inherited from ReferableBaseObject)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>semaphoreType</i>
+ </td>
+ <td colspan="1" rowspan="1">Defines how the semaphore is implemented</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>initialValue</i>
+ </td>
+ <td colspan="1" rowspan="1">Initial number of processes that access the semaphore</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>maxValue</i>
+ </td>
+ <td colspan="1" rowspan="1">Maximum number of processes that can concurrently access the semaphore</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>priorityCeilingPrototcol</i>
+ </td>
+ <td colspan="1" rowspan="1">Defines if the priority ceiling protocol is activated. If it is activated, a process that accesses the semaphore gets a higher priority as the processes that can also access the same semaphore</td>
+ </tr>
+ </table>
+
+
+<h2><a id="section3.12">3.12 </a>PropertyConstraints Model</h2>
+ <p>The scope of the Property Constraints model is to limit the design space by providing information about the specific hardware properties that parts of the software rely on, i.e. what properties or features have to be supplied by the respective hardware in order to be a valid mapping or allocation target.</p>
+ <p>This information comprises</p>
+ <ul>
+ <li>Core allocation constraints, which describe the constraints on cores.</li>
+ <li>Memory mapping constraints, which describe the constraints on memories.</li>
+ </ul>
+
+
+<h3><a id="section3.12.1">3.12.1 </a>Structure</h3>
+ <p>The figure below shows the Property Constraints model. In order to provide a better understanding of the model, interconnections between software model elements are not shown in this figure.</p>
+ <p>
+ <img src="images/model_propertyconstraints_overview.png"/>
+ </p>
+
+
+<h3><a id="section3.12.2">3.12.2 </a>CoreAllocationConstraint</h3>
+ <p>The
+ <i>CoreAllocationConstraint</i> is an abstract class for describing constraints which affect the selection of a suitable
+ <i>Core</i>.
+ </p>
+
+
+<h4><a id="section3.12.2.1"></a>RunnableAllocationConstraint</h4>
+ <p>The
+ <i>RunnableAllocationConstraint</i> is a specialization of the
+ <i>CoreAllocationConstraint</i>. It is used to specify constraints on
+ <i>Core</i> elements which are used in
+ <i>Runnable</i> to
+ <i>Core</i> allocations.
+ </p>
+
+
+<h4><a id="section3.12.2.2"></a>ProcessAllocationConstraint</h4>
+ <p>The
+ <i>ProcessAllocationConstraint</i> is a specialization of the
+ <i>CoreAllocationConstraint</i>. It is used to specify constraints on
+ <i>Core</i> elements which are used in the allocation of Process's specializations (i.e.
+ <i>Task</i> and
+ <i>ISR</i>), to
+ <i>Cores</i>.
+ </p>
+
+
+<h4><a id="section3.12.2.3"></a>ProcessPrototypeAllocationConstraint</h4>
+ <p>Tha same as ProcessAllocationConstraint but for process prototypes in an earlier phase of the development.</p>
+
+
+<h3><a id="section3.12.3">3.12.3 </a>MemoryMappingConstraint</h3>
+ <p>The
+ <i>MemoryMappingConstraint</i> is an abstract class for describing constraints which affect the selection of a suitable
+ <i>Memory</i>. The actual constraint on the core is described by the
+ <i>AbstractElementMappingConstraint</i>.
+ </p>
+
+
+<h4><a id="section3.12.3.1"></a>AbstractElementMappingConstraint</h4>
+ <p>The
+ <i>AbstractElementMappingConstaint</i> is a specialization of the
+ <i>MappingConstraint</i>. It is used to specify constraints on
+ <i>Memory</i> elements which are used in the mapping of
+ <i>AbstractMemoryElement</i> specializations (i.e.
+ <i>Label</i>,
+ <i>Runnable</i>,
+ <i>TaskPrototype</i> or
+ <i>Process</i>) to
+ <i>Memories</i>.
+ </p>
+
+
+<h3><a id="section3.12.4">3.12.4 </a>Classifications</h3>
+ <p>The specializations
+ <i>CoreClassification</i> and
+ <i>MemoryClassification</i> are used to describe the features that a hardware element (
+ <i>Core</i> or
+ <i>Memory</i>) needs to provide in order to be a valid target. This is done by references to Classifiers, conditions (requires vs. excludes) and the kind of grouping (all of them vs. at least one of them).
+ </p>
+
+
+<h3><a id="section3.12.5">3.12.5 </a>Example</h3>
+ <p>
+ <img src="images/model_propertyconstraints_example.png"/>
+ </p>
+
+
+<h2><a id="section3.13">3.13 </a>Stimuli Model</h2>
+ <p>The Stimuli Model contains stimulus and clock objects.</p>
+ <p>
+ <img class="scale" src="images/model_stimuli.png"/>
+ </p>
+
+
+<h3><a id="section3.13.1">3.13.1 </a>Stimuli</h3>
+ <p>
+ <img class="scale" src="images/model_stimuli_stimuli.png"/>
+ </p>
+ <p>A stimulus is responsible to activate processes. The following different types are available:</p>
+ <ul>
+ <li>
+ <strong>SingleStimulus</strong>: Activates the process only once.
+ </li>
+ <li>
+ <strong>ArrivalCurveStimulus</strong>: A list of time-borders in which a specified number of occurrences are expected.
+ </li>
+ <li>
+ <strong>PeriodicStimulus</strong>: Periodic activations based on an offset, a recurrence and (optionally) a jitter.
+ </li>
+ <li>
+ <strong>PeriodicSyntheticStimulus</strong>: Defines a periodically triggered stimuli depending on a defined list of occurrence times.
+ </li>
+ <li>
+ <strong>PeriodicBurstStimulus</strong>: Defines a periodic burst pattern of the process.
+ </li>
+ <li>
+ <strong>RelativePeriodicStimulus</strong>: Periodic activation based on offset and a recurrence.<br>In contrast to PeriodicStimulus the recurrence is relative to the last occurrence and a deviation is mandatory.
+ </li>
+ <li>
+ <strong>VariableRateStimulus</strong>: Periodic activations based on other events, like rotation speed.
+ </li>
+ <li>
+ <strong>InterProcessStimulus</strong>: Activations based on an explicit inter-process activation.<br>Contains a Counter element if activation is either shifted and / or happening every n<sup>th</sup> time.
+ </li>
+ <li>
+ <strong>EventStimulus</strong>: Activation triggered by an event, defined in the event model.<br>Contains a Counter element if activation is either shifted and / or happening every n<sup>th</sup> time.
+ </li>
+ <li>
+ <strong>CustomStimulus</strong>: To describe own custom types of activations, including properties.
+ </li>
+ </ul>
+ <ul class="validation-rule">
+ <li>
+ <em>PeriodicStimulus</em>: The
+ <em>Time</em> object in the role of
+ <em>offset</em> must not contain a negative value!
+ </li>
+ <li>
+ <em>PeriodicStimulus</em>: The
+ <em>Time</em> object in the role of
+ <em>recurrence</em> must not contain a negative value!
+ </li>
+ <li>
+ <em>PeriodicBurstStimulus</em>: The
+ <em>Time</em> object in the role of
+ <em>offset</em> must not contain a negative value!
+ </li>
+ <li>
+ <em>PeriodicBurstStimulus</em>: The
+ <em>Time</em> object in the role of
+ <em>recurrence</em> must not contain a negative value!
+ </li>
+ <li>
+ <em>PeriodicSyntheticStimulus</em>: The
+ <em>Time</em> object in the role of
+ <em>offset</em> must not contain a negative value!
+ </li>
+ <li>
+ <em>PeriodicSyntheticStimulus</em>: The
+ <em>Time</em> object in the role of
+ <em>recurrence</em> must not contain a negative value!
+ </li>
+ <li>
+ <em>TimestampList</em>: The
+ <em>Time</em> objects in the role of
+ <em>timestamps</em> must not contain a negative value!
+ </li>
+ <li>
+ <em>SingleStimulus</em>: The
+ <em>Time</em> object in the role of
+ <em>occurrence</em> must not contain a negative value!
+ </li>
+ <li>
+ <em>ArrivalCurveEntry</em>: The
+ <em>Time</em> object in the role of
+ <em>lowerTimeBorder</em> must not contain a negative value!
+ </li>
+ <li>
+ <em>ArrivalCurveEntry</em>: The
+ <em>Time</em> object in the role of
+ <em>upperTimeBorder</em> must not contain a negative value!
+ </li>
+ </ul>
+
+
+<h4><a id="section3.13.1.1"></a>Single</h4>
+ <p>
+ <em>Single</em> allows to specify an activation at a single relative point in time. The single activation occurs after the time units specified by
+ <em>occurrence</em>.
+ </p>
+ <p>
+ <img src="images/model_stimuli_single.png" style="width:600px"/>
+ </p>
+
+
+<h4><a id="section3.13.1.2"></a>Arrival Curves</h4>
+ <p>An arrival curve is described as a list of time-borders in which a specified number of activations are expected. The picture below shows an example for this. In the first picture there is a number of occurrences on a timeline.</p>
+ <p>
+ <img src="images/model_stimuli_arrival_curve_1.png" style="width:500px"/>
+ </p>
+ <p>In the picture below every distance between two activations is measured. The minimum and the maximum distance is added to the table as time-border for the occurrence of two activations. This means that after one activations there has to be at least a gap of one time-unit before the next activations can occur. It also means that there will be always a second activations within eight time units after the last activations. Basically this would be enough to describe an Arrival Curve Stimulus. But it is possible to create a more precise stimulus by describing additional time borders for greater number of occurrences. This is shown in the steps below. </p>
+ <p>
+ <img src="images/model_stimuli_arrival_curve_2.png" style="width:400px"/>
+ </p>
+ <p>The same as for two activations in the picture above is done here for three activations. Like already mentioned above, this is an additional restriction for occurrence of an activations. </p>
+ <p>
+ <img src="images/model_stimuli_arrival_curve_3.png" style="width:400px"/>
+ </p>
+ <p>And for four activations:</p>
+ <p>
+ <img src="images/model_stimuli_arrival_curve_4.png" style="width:400px"/>
+ </p>
+ <p>The picture below shows the table as arrival curve graph. The red line is the upper-time-border that shows the latest time where the activations will occur. The green line shows the earliest possible time where the activations can occur. </p>
+ <p>
+ <img src="images/model_stimuli_arrival_curve_5.png" style="width:600px"/>
+ </p>
+
+
+<h4><a id="section3.13.1.3"></a>Common properties of fixed periodic stimuli</h4>
+ <p>The abstract class
+ <em>FixedPeriodic</em> defines the common attributes of
+ <em>Periodic</em>,
+ <em>PeriodicSynthetic</em> and
+ <em>PeriodicBurst</em>. In general all period based Stimuli specify periodic occurrences based on an offset and a recurrence. The first occurrence happens after the time units specified by
+ <em>offset</em>, and then every following occurrence happens after the time units specified by
+ <em>recurrence</em>. This means, in general, an occurrence of instance i is happening at time t =
+ <em>offset</em> + i *
+ <em>recurrence</em>.
+ </p>
+ <p>The following figure shows a
+ <em>Periodic</em> Stimulus example with only a fix offset and recurrence time.
+ </p>
+ <p>
+ <img src="images/model_stimuli_periodic.png" style="width:650px"/>
+ </p>
+
+
+<h4><a id="section3.13.1.4"></a>Periodic </h4>
+ <p>In addition to the standard periodic behavior the
+ <em>Periodic</em> Stimulus can be extended by a
+ <em>Jitter</em> e.g. an Gaussian deviation. The activation time of each occurrence jitters according to the values of the distribution as depicted in the following figure. Depending on the
+ <em>Jitter</em> distribution the upper bound of the current and the lower bound of the next activation can be close to each other or even overlap. The
+ <em>minDistance</em> value allows the user to define the minimum distance between the current and the next activation.
+ </p>
+ <p>
+ <img src="images/model_stimuli_periodic_jitter.png" style="width:650px"/>
+ </p>
+ <p>The recurrence of a
+ <em>Periodic</em> Stimulus is absolute. This means that a recurrence of 10ms points exactly to the next activation every 10ms. The
+ <em>Jitter</em> describes the deviation of the occurrence around this absolute value.
+ </p>
+
+
+<h4><a id="section3.13.1.5"></a>PeriodicSynthetic</h4>
+ <p>
+ <em>PeriodicSynthetic</em> allows to specify a periodic activation of trigger patterns. It is defined by a list of List of
+ <em>occurrenceTimes</em>, a period
+ <em>recurrence</em>, and an
+ <em>offset</em>. Each time value in
+ <em>occurrenceTimes</em> specifies a single activation at a relative point in time. The moment in time these time values are relative and is defined the following way: an activation of instance i is triggered at time t =
+ <em>offset</em> + floor(i / m) *
+ <em>recurrence</em> +
+ <em>occurrenceTimes</em>[i modulo m].
+ </p>
+ <p>The following figure shows a
+ <em>Synthetic</em> Stimulus example with two periodic activations after the time units T1 and T2.
+ </p>
+ <p>
+ <img src="images/model_stimuli_synthetic.png"/>
+ </p>
+
+
+<h4><a id="section3.13.1.6"></a>PeriodicBurst</h4>
+ <p>The
+ <em>PeriodicBurst</em> Stimulus specifies a set of burst activations that are periodically repeated. This means that multiple activations occur very close to each other and this recurs in a periodic matter. The burst pattern has a fixed recurrence period and every burst results in multiple activations.
+ </p>
+ <p>
+ <img src="images/model_stimuli_periodic_burst.png" style="width:700px"/>
+ </p>
+ <p>The number of occurrences per burst are specified via
+ <em>occurrenceCount</em>. The
+ <em>occurrenceMinDinstance</em> defines the minimal distance between them. The
+ <em>burstLength</em> defines the maximum time the burst pattern can last. If the number of occurrences multiplied with the minimum distance between activations is bigger than the
+ <em>burstLength</em> only the number of activations that fit into the
+ <em>burstLength</em> are executed.
+ </p>
+
+
+<h4><a id="section3.13.1.7"></a>RelativePeriodic </h4>
+ <p>In contrast to the
+ <em>Periodic</em> Stimulus the
+ <em>RelativePeriodic</em> Stimulus allows to specify relative recurrences. The next activation depends on the current activation time and the added deviation for the next step. The
+ <em>lower</em> and
+ <em>upperBound</em> are specified in the
+ <em>nextOccurrence</em> deviation similar to the
+ <em>Jitter</em> specification in the
+ <em>Periodic</em> Stimulus.
+ </p>
+ <p>
+ <img src="images/model_stimuli_periodic_relative.png" style="width:700px"/>
+ </p>
+
+
+<h4><a id="section3.13.1.8"></a>VariableRateStimulus</h4>
+ <p>With the
+ <em>VariableRate</em> Stimulus the description of task activation based on e.g. the crankshaft rotation speed or other adaptive variable rate activations.
+ </p>
+ <p>The
+ <em>step</em> has to be defined as a base value for the following specifications.<br>
+ <br>In the deviation
+ <em>occurrencesPerStep</em> the lower and upper frequency of the variable rate are described. The distribution can be used to describe the standard frequency occurrences. The user can describe that the frequency is distributed e.g. uniformly over the complete frequency band or as another example the occurrences happens mostly at the
+ <em>Boundaries</em> of the frequency band that can be specified with the
+ <em>CornerCase</em>
+ <em>samplingType</em> in the distribution.<br>
+ <br>The user can set
+ <em>maxDecrease</em> and
+ <em>maxIncrease</em> values to describe the number of additional respectively reduced task activations that can occur within a predefined time
+ <em>step</em>. With these values, the maximum acceleration and maximum deceleration of the stimuli can be calculated.
+ </p>
+ <p>
+ <img src="images/model_stimuli_variablerate.png" style="width:700px"/>
+ </p>
+ <p>An additional feature for the
+ <em>variableRate</em> Stimulus is the description of
+ <em>simulationScenario</em> that specifies the progression of the
+ <em>variableRate</em> over time.
+ <br>In contrast to the generic specification via statistical values the scenario defines the computation via the
+ <em>recurrence</em> property that is modified by a factor based on a
+ <em>clock</em>.
+ </p>
+
+
+<h3><a id="section3.13.2">3.13.2 </a>Clocks</h3>
+ <p>The
+ <em>clock</em> is a time base which describes the progress of time for one or more variable rate stimuli in relation to global time.
+ <br>If two equal stimuli have a different time base, the time of task activation can be different. There are different kind of clock functions, the clock sinus function, the clock triangle function and the clock multiplier list. The clock multiplier list is a list of timestamp-multiplier value pairs. Is a specified timestamp arrived, the clock changes to the corresponding multiplier value.
+ </p>
+ <p>
+ <img class="scale" src="images/model_stimuli_clocks.png"/>
+ </p>
+ <ul class="validation-rule">
+ <li>
+ <em>ClockTriangleFunction</em>: The
+ <em>Time</em> object in the role of
+ <em>period</em> must not contain a negative value!
+ </li>
+ <li>
+ <em>ClockSinusFunction</em>: The
+ <em>Time</em> object in the role of
+ <em>period</em> must not contain a negative value!
+ </li>
+ <li>
+ <em>ClockMultiplierListEntry</em>: The
+ <em>Time</em> object in the role of
+ <em>time</em> must not contain a negative value!
+ </li>
+ </ul>
+
+
+<h3><a id="section3.13.3">3.13.3 </a>Mode label lists</h3>
+ <p>It is possible to define lists of mode label values for a stimulus. An entry in this list is always a pair of a mode label and a mode literal.</p>
+ <p>
+ <img class="scale" src="images/model_stimuli_modevaluelist.png"/>
+ </p>
+ <ul class="validation-rule">
+ <li>
+ <em>ModeValue</em>: The
+ <em>Mode</em> objects referenced via
+ <em>valueProvider</em> and
+ <em>value</em> must be equal!
+ </li>
+ </ul>
+ <p>The
+ <strong>set-mode-labels-list</strong> indicates: Each time the stimulus is triggered all mode labels in this list are set to the corresponding value.
+ </p>
+ <p>The
+ <strong>enabling-mode-label-list</strong> and the
+ <strong>disabling-mode-label-list</strong> can be used to enable or disable a stimulus by setting the mode label to a specific value (e.g. by a write access with a runnable).
+ </p>
+ <p>Meaning:</p>
+ <ul>
+ <li>If there are no list entries at all, the stimulus is enabled.</li>
+ <li>If only the disabling-list has entries, the stimulus is disabled if the condition is fulfilled, otherwise enabled.</li>
+ <li>If only the enabling-list has entries, the stimuli is enabled if the condition is fulfilled, otherwise disabled. </li>
+ <li>If there are entries in both lists, disabling has precedence.</li>
+ </ul>
+ <table class="classic" style="text-align:center;margin-left:50px">
+ <tr>
+ <td colspan="2" rowspan="2"/>
+ <td colspan="2" rowspan="1">
+ <em>disabling-list</em>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">true</td>
+ <td colspan="1" rowspan="1">false</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="2">
+ <em>enabling-list</em>
+ </td>
+ <td colspan="1" rowspan="1">true</td>
+ <td colspan="1" rowspan="1" style="color:red">disabled</td>
+ <td colspan="1" rowspan="1" style="color:green">enabled</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">false</td>
+ <td colspan="1" rowspan="1" style="color:red">disabled</td>
+ <td colspan="1" rowspan="1" style="color:red">disabled</td>
+ </tr>
+ </table>
+
+
+<h2><a id="section3.14">3.14 </a>Software Model</h2>
+ <p>The AMALTHEA software model is central accessible through the
+ <i>SWModel</i> element.
+ </p>
+
+
+<h3><a id="section3.14.1">3.14.1 </a>Memory Information</h3>
+ <p>Analyzing and mapping the software structure to available memories needs additional information of the included elements. This type of information targets the consumed size of memory of an element, represented by the
+ <i>size</i> attribute of type
+ <i>DataUnit</i>. The element
+ <i>AbstractMemoryElement</i> is a generalized element that provides this data. The following image shows the structure and also the elements of the software model that are extending
+ <i>AbstractMemoryElement</i> (the overview picture is only showing the hierarchy and not possible relationships between the elements):
+ </p>
+ <p>
+ <img class="scale" src="images/model_sw_memory_inf.png"/>
+ </p>
+
+
+<h3><a id="section3.14.2">3.14.2 </a>Labels</h3>
+ <p>The label element represents a data element. It is directly located in a defined area of a given memory.
+ <br>It can be used as a parameter, a temporarily existing variable or representing a constant value.
+ </p>
+ <p>
+ <img src="images/model_sw_label.png"/>
+ </p>
+ <p>The following attributes are describing a label:</p>
+ <table class="minimal" style="padding:10px; border:1px solid black; background:#f8f8f8">
+ <tr>
+ <th colspan="1" rowspan="1">Name</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>name</i>
+ </td>
+ <td colspan="1" rowspan="1">The name represented as String value (derived from
+ <i>AbstractElementMemoryInformation</i>)
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>displayName</i>
+ </td>
+ <td colspan="1" rowspan="1">In addition to the name attribute, which must be unique, a label can also be described by an additional and optional display name. The displayName attribute must not be unique. It can be used for example to represent specification data, which can be different from the unique name (like a symbol) of an available software build.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>dataType</i>
+ </td>
+ <td colspan="1" rowspan="1">Reference to the data type definition</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>constant</i>
+ </td>
+ <td colspan="1" rowspan="1">Boolean value to represent, if label is representing a constant value</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>bVolatile</i>
+ </td>
+ <td colspan="1" rowspan="1">Boolean value to mark a label as volatile</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>dataStability</i>
+ </td>
+ <td colspan="1" rowspan="1">Enumeration value to represent the data stability needs of the label. If set, it overwrites the global settings stated by the
+ <i>OsDataConsistency</i>, otherwise it inherits them (see <a href="#os-data-consistency">OS Data Consistency</a>).
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>stabilityLevel</i>
+ </td>
+ <td colspan="1" rowspan="1">Enumeration value to represent the data stability level of the label. If set, it overwrites the global settings stated by the
+ <i>OsDataConsistency</i>, otherwise it inherits them (see <a href="#os-data-consistency">OS Data Stability</a>).
+ </td>
+ </tr>
+ </table>
+
+
+<h3><a id="section3.14.3">3.14.3 </a>Channels</h3>
+ <p>The channel element has two different characteristics: it represents a data element in memory and also a way how runnables transmit larger amounts of data. A typical applications is the streaming of video data where a continuous sequence of images is sent in smaller chunks.</p>
+ <p>
+ <img src="images/model_sw_channel.png"/>
+ </p>
+ <p>The following attributes are describing a label:</p>
+ <table class="minimal" style="padding:10px; border:1px solid black; background:#f8f8f8">
+ <tr>
+ <th colspan="1" rowspan="1">Name</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>name</i>
+ </td>
+ <td colspan="1" rowspan="1">The name represented as String value (derived from
+ <i>AbstractElementMemoryInformation</i>)
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>displayName</i>
+ </td>
+ <td colspan="1" rowspan="1">In addition to the name attribute, which must be unique, a label can also be described by an additional and optional display name. The displayName attribute must not be unique. It can be used for example to represent specification data, which can be different from the unique name (like a symbol) of an available software build.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>elementType</i>
+ </td>
+ <td colspan="1" rowspan="1">Reference to the data type definition of a single element</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>defaultElements</i>
+ </td>
+ <td colspan="1" rowspan="1">Number of elements initially in the channel (at start-up)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>maxElements</i>
+ </td>
+ <td colspan="1" rowspan="1">Depth of channel (maximum number of elements that may be stored)</td>
+ </tr>
+ </table>
+
+
+<h3><a id="section3.14.4">3.14.4 </a>Data Types</h3>
+
+
+<h4><a id="section3.14.4.1"></a>General Information</h4>
+ <p>The AMALTHEA data model supports meta information for base data types. Therefore the element
+ <i>BaseTypeDefinition</i> exists in the software part of the model. It consists of the name and number of bits to define a data type. Additional information to store is the mapping information of these data types for a target platform, represented by the
+ <i>DataPlatformMapping</i> element, like AUTOSAR or any other one.
+ </p>
+ <p>The compound data types are data structures, based on given or defined base types.
+ <br>In the literature they are also often named composite or derived types
+ <a href="https://en.wikipedia.org/wiki/Data_type">see Wiki</a>.
+ <br>The result of this type of definition is an own data type, which can be used as base data types.
+ <br>They can consist of static structures or dynamic ones, like arrays or stacks.
+ </p>
+ <p>
+ <img src="images/model_sw_type_system.png"/>
+ </p>
+ <p>The following compound data type definitions are currently supported:</p>
+ <ul>
+ <li>Pointer: Holds a reference to another type using its memory address</li>
+ <li>Array: Contains a number of elements of the same data type. The size of an array can be fixed or expandable.</li>
+ <li>Struct: Contains other data types in a structured way, often called fields or members. The fields can be accessed by their name.</li>
+ </ul>
+
+
+<h4><a id="section3.14.4.2"></a>Sample</h4>
+ <p>In the picture below a small sample is modeled containing the following information:</p>
+ <ul>
+ <li>Boolean type with size of 8 bits and platform mapping for AR (Boolean) and C (bool)</li>
+ <li>Char16 type with size of 16 bits and platform mapping for AR (Char16) and C (short)</li>
+ <li>charArray consists of 4 elements of type Char16</li>
+ <li>"hello world struct" with the attribute name (Char16) and valid (Boolean)</li>
+ </ul>
+ <p>Note: The picture shows the activated element types for better understanding!</p>
+ <p>
+ <img class="gray" src="images/model_sw_type_sample.png"/>
+ </p>
+
+
+<h3><a id="section3.14.5">3.14.5 </a>Activations</h3>
+ <p>Activations are used to specify the intended activation behavior of
+ <i>Runnables</i> and
+ <i>ProcessPrototypes</i>. Typically they are defined before the creation of tasks (and the runnable to task mappings). So if there are no tasks defined, or if the mapping of runnables to tasks is not done, this is a way to document when the runnables should be executed.
+ <br>Activations are independent of other top level elements in the AMALTHEA model. Single, periodic, sporadic, event or custom (free textual description only, no predefined semantic) activation pattern can be defined. This information can be used in the following development steps to create tasks, stimuli and the mappings to dedicated hardware.
+ </p>
+ <p>
+ <img src="images/model_sw_activation.png"/>
+ </p>
+ <ul class="validation-rule">
+ <li>
+ <em>PeriodicActivation</em>: The
+ <em>Time</em> object in the role of
+ <em>min</em> must not contain a negative value!
+ </li>
+ <li>
+ <em>PeriodicActivation</em>: The
+ <em>Time</em> object in the role of
+ <em>max</em> must not contain a negative value!
+ </li>
+ <li>
+ <em>PeriodicActivation</em>: The
+ <em>Time</em> object in the role of
+ <em>offset</em> must not contain a negative value!
+ </li>
+ <li>
+ <em>PeriodicActivation</em>: The
+ <em>Time</em> object in the role of
+ <em>deadline</em> must not contain a negative value!
+ </li>
+ <li>
+ <em>SingleActivation</em>: The
+ <em>Time</em> object in the role of
+ <em>min</em> must not contain a negative value!
+ </li>
+ <li>
+ <em>SingleActivation</em>: The
+ <em>Time</em> object in the role of
+ <em>max</em> must not contain a negative value!
+ </li>
+ </ul>
+
+
+<h3><a id="section3.14.6">3.14.6 </a>Runnables and Services</h3>
+ <p>Both elements, runnables and services, are an abstraction of an executable entity. They are both represented by the
+ <i>Runnable</i> element and are distinguished by using the service attribute of type boolean.
+ <br>Instead of tasks, which are providing a context for the operating system, runnables and services are including the instructions to perform. They include an abstraction of these instructions using different algorithms, based on performance data.
+ <br>The difference between runnables and functions is based on their activation and type of calling. While the initial activation of a runnable can only be performed by a task or another runnable, services can only be activated by runnables or other services.
+ </p>
+ <p>Runnables and Services in the AMALTHEA model have call parameters. It is possible to specify the arguments of a service call and potential data dependencies.</p>
+ <p>Based on these types of information, an additional analysis can be performed.
+ <br>The next picture is showing the call graph of task, runnable and services.
+ </p>
+ <p>
+ <img src="images/model_sw_call_graph.png"/>
+ </p>
+
+
+<h3><a id="section3.14.7">3.14.7 </a>Runnables</h3>
+ <p>The next picture shows the general structure of the
+ <i>Runnable</i> element.
+ </p>
+ <p>
+ <img src="images/model_sw_runnable_overview.png"/>
+ </p>
+ <table class="minimal" style="padding:10px; border:1px solid black; background:#f8f8f8">
+ <tr>
+ <th colspan="1" rowspan="1">Name</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>callback</i>
+ </td>
+ <td colspan="1" rowspan="1">
+ <i>True</i> if a runnable is used as a callback
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>service</i>
+ </td>
+ <td colspan="1" rowspan="1">
+ <i>True</i> if
+ <i>Runnable</i> element can be seen in a service or global function manner. In more detail, the
+ <i>Runnable</i> is only called from other
+ <i>Runnables</i> and not directly from a
+ <i>Task</i> context.
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>deadline</i>
+ </td>
+ <td colspan="1" rowspan="1">Information in
+ <i>Time</i> at which the element must be finished / terminated.
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>runnableItems</i>
+ </td>
+ <td colspan="1" rowspan="1">List containing
+ <i>RunnableItem</i> objects, representing instructions, label accesses, other
+ <i>Runnable</i> accesses. The possibilities are described below.
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>tags</i>
+ </td>
+ <td colspan="1" rowspan="1">Can be used to annotate or group special kind of
+ <i>Runnables</i>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>activation</i>
+ </td>
+ <td colspan="1" rowspan="1">Although runnables in the simulation can only be called by tasks, it is possible to specify an activation pattern for a runnable.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>asilLevel</i>
+ </td>
+ <td colspan="1" rowspan="1">Possibility to specify the ASIL level ("automotive safety integrity level").</td>
+ </tr>
+ </table>
+ <ul class="validation-rule">
+ <li>
+ <em>Runnable</em>: The
+ <em>Time</em> object in the role of
+ <em>deadline</em> must not contain a negative value!
+ </li>
+ </ul>
+
+
+<h3><a id="section3.14.8">3.14.8 </a>Runnable Items</h3>
+ <p>The
+ <i>RunnableItems</i> are describing the detailed behavior of a
+ <i>Runnable</i> element. This can be either an abstraction of instructions by representing the used running time or representing access to other elements like
+ <i>Runnables</i>,
+ <i>Labels</i> and
+ <i>Semaphore</i>. An overview of the different possibilities is given in the next pictures.
+ </p>
+
+
+<h4><a id="section3.14.8.1"></a>Groups</h4>
+ <p>
+ <img src="images/model_sw_runnable_items_1_group.png"/>
+ </p>
+ <p>A
+ <i>Group</i> is used to structure the
+ <i>RunnableItems</i>. The
+ <i>boolean</i> attribute
+ <i>isOrdered</i> indicates if the execution order of the contained elements is fixed or random.
+ </p>
+
+
+<h4><a id="section3.14.8.2"></a>Calls and AUTOSAR communication</h4>
+ <p>
+ <img class="scale" src="images/model_sw_runnable_items__calls.png"/>
+ </p>
+ <table class="minimal" style="padding:10px; border:1px solid black; background:#f8f8f8">
+ <tr>
+ <th colspan="1" rowspan="1">Name</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>RunnableCall</i>
+ </td>
+ <td colspan="1" rowspan="1">The activation of another
+ <i>Runnable</i>.
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>SenderReceiverCommunication</i>
+ </td>
+ <td colspan="1" rowspan="1">An abstract description for sender-receiver-communication (it can be read or write).</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>ServerCall</i>
+ </td>
+ <td colspan="1" rowspan="1">An abstract description for client/server communication. It refers to a required runnable that describes the called server operation</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>SynchronousServerCall</i>
+ </td>
+ <td colspan="1" rowspan="1">A synchronous server call with defined waiting behaviour.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>AsynchronousServerCall</i>
+ </td>
+ <td colspan="1" rowspan="1">An asynchronous server call with (optional) specification of result runnable.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>GetResultsServerCall</i>
+ </td>
+ <td colspan="1" rowspan="1">Get the result of a previous asynchronous server call (with defined blocking behaviour).</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section3.14.8.3"></a>Label Access</h4>
+ <p>
+ <img class="scale" src="images/model_sw_runnable_items__label_access.png"/>
+ </p>
+ <table class="minimal" style="padding:10px; border:1px solid black; background:#f8f8f8">
+ <tr>
+ <th colspan="1" rowspan="1">Name</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>access</i>
+ </td>
+ <td colspan="1" rowspan="1">The type of access is represented using the values of
+ <i>LabelAccessEnum</i>.
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>data</i>
+ </td>
+ <td colspan="1" rowspan="1">Describes the access to an existent
+ <i>Label</i> (set as reference).
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>dataStability</i>
+ </td>
+ <td colspan="1" rowspan="1">Describes the data stability needs. If set, it overwrites the label settings, otherwise it inherits them (see <a href="#os-data-consistency">OS Data Consistency</a>).</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>implementation</i>
+ </td>
+ <td colspan="1" rowspan="1">Describes how a label access is implemented: <ul><li>
+ <strong>explicit</strong>: also known as "direct" </li><li>
+ <strong>implicit</strong>: also known as "optimized"</li><li>
+ <strong>timed</strong></li></ul>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>statistic</i>
+ </td>
+ <td colspan="1" rowspan="1">Defines the frequency of the label access.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>transmissionPolicy</i>
+ </td>
+ <td colspan="1" rowspan="1">The following attributes reflect the computing demand (time) depending on data: <ul><li>
+ <strong>chunkSize</strong>: Size of a part of an element, maximum is the element size. </li><li>
+ <strong>chunkProcessingInstructions</strong>: Number of instructions that will be executed to transmit one chunk. </li></ul> The next attribute specifies the amount of data actually accessed by a runnable (required to analyze memory bandwidth demands): <ul><li>
+ <strong>transmitRatio</strong>: Specify the ratio of each element that is actually transmitted by the runnable in percent. Value must be between [0, 1], default value is 1.0 . </li></ul>
+ </td>
+ </tr>
+ </table>
+
+
+<h4><a id="section3.14.8.4"></a>Channel Access</h4>
+ <p>
+ <img src="images/model_sw_runnable_items__channel_access.png"/>
+ </p>
+ <p>Common attributes:</p>
+ <table class="minimal" style="padding:10px; border:1px solid black; background:#f8f8f8">
+ <tr>
+ <th colspan="1" rowspan="1">Name</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>data</i>
+ </td>
+ <td colspan="1" rowspan="1">Describes the access (
+ <i>ChannelSend</i> or
+ <i>ChannelReceive</i>) to an existent
+ <i>Channel</i> (set as reference).
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>elements</i>
+ </td>
+ <td colspan="1" rowspan="1">Maximum number of elements that are transmitted.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>transmissionPolicy</i>
+ </td>
+ <td colspan="1" rowspan="1">The following attributes reflect computing demand (time) depending on data: <ul><li>
+ <strong>chunkSize</strong>: Size of a part of an element, maximum is the element size. </li><li>
+ <strong>chunkProcessingInstructions</strong>: Number of instructions that will be executed to send / receive one chunk. </li></ul> The next attribute specifies the amount of data actually accessed by a runnable (required to analyze memory bandwidth demands): <ul><li>
+ <strong>transmitRatio</strong>: Specify the ratio of each element that is actually transmitted by the runnable in percent. Value must be between [0, 1], default value is 1.0 . </li></ul>
+ </td>
+ </tr>
+ </table>
+ <p>Receive attributes:</p>
+ <table class="minimal" style="padding:10px; border:1px solid black; background:#f8f8f8">
+ <tr>
+ <th colspan="1" rowspan="1">Name</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>receiveOperation</i>
+ </td>
+ <td colspan="1" rowspan="1">The type of an operation is defined by LIFO or FIFO, Read or Take: <ul><li>
+ <strong>LIFO</strong>: last-in, first-out </li><li>
+ <strong>FIFO</strong>: first-in, first-out </li><li>
+ <strong>Read</strong>: reads elements (without modifying the channel content) </li><li>
+ <strong>Take</strong>: removes the received elements </li></ul>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>elementIndex</i>
+ </td>
+ <td colspan="1" rowspan="1">Position (index) in channel at which the operation is effective. Zero is the default and denotes the oldest (FIFO) or newest element (LIFO) in the channel.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>lowerBound</i>
+ </td>
+ <td colspan="1" rowspan="1">Minimum number of elements returned by the operation. The value must be in the range [0,n], with n is the maximum number of elements that are received. Default value is n.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>dataMustBeNew</i>
+ </td>
+ <td colspan="1" rowspan="1">Specify if the operation must only return elements that are not previously read by the runnable. Default value is false.</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section3.14.8.5"></a>Semaphore Access</h4>
+ <p>
+ <img src="images/model_sw_runnable_items_3_semaphores.png"/>
+ </p>
+ <table class="minimal" style="padding:10px; border:1px solid black; background:#f8f8f8">
+ <tr>
+ <th colspan="1" rowspan="1">Name</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>SemaphoreAccess</i>
+ </td>
+ <td colspan="1" rowspan="1">Represents an access of a Semaphore. The type of access is defined using the
+ <i>SemaphoreAccessEnum</i> values. The
+ <i>Semaphore</i> itself is set as a reference to an existent one.
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>access</i>
+ </td>
+ <td colspan="1" rowspan="1">Defines the type of access (request, exclusive, release).</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>waitingBehaviour</i>
+ </td>
+ <td colspan="1" rowspan="1">Defines if the process is blocking the core when it waits (active) or not (passive).</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section3.14.8.6"></a>Mode Label Access</h4>
+ <p>
+ <img src="images/model_sw_runnable_items_4_modes.png"/>
+ </p>
+ <table class="minimal" style="padding:10px; border:1px solid black; background:#f8f8f8">
+ <tr>
+ <th colspan="1" rowspan="1">Name</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>ModeLabelAccess</i>
+ </td>
+ <td colspan="1" rowspan="1">Describes the access to an existing
+ <i>ModeLabel</i> (set as reference). The type of access is represented using the values of
+ <i>LabelAccessEnum</i>:
+ <code>write</code> represents the change of a mode label. The defined
+ <i>ModeLiteral</i> is set.
+ <code>read</code> indicates that the behavior of the runnable is influenced by the current value of the
+ <i>ModeLabel</i>.
+ </td>
+ </tr>
+ </table>
+ <ul class="validation-rule">
+ <li>
+ <em>ModeLabelAccess</em>: The
+ <em>Mode</em> objects referenced via
+ <em>modeValue</em> and
+ <em>data</em> must be equal!
+ </li>
+ </ul>
+
+
+<h4><a id="section3.14.8.7"></a>Custom Event Trigger</h4>
+ <p>The
+ <i>Custom Event Trigger</i> references an event of type
+ <i>Custom Event</i>. The execution of a
+ <i>Custom Event Trigger</i> entry triggers the corresponding event that can be observed by an
+ <i>Event Stimulus</i>.
+ </p>
+ <p>
+ <img src="images/model_sw_runnable_items__triggers.png"/>
+ </p>
+
+
+<h4><a id="section3.14.8.8"></a>Runnable Mode Switch</h4>
+ <p>With the
+ <i>RunnableModeSwitch</i> it is possible to define different execution paths. They can be used like
+ <i>if-else</i> or
+ <i>switch-case</i> statements in a programming language. A
+ <i>RunnableModeSwitch</i> uses the value of a
+ <i>ModeLabel</i> (with the help of
+ <i>ModeValueProvider</i>) to decide which path has to be executed.
+ <br>A
+ <i>ModeSwitchEntry</i> object is referenced to represent the different paths and each entry defines the value the mode must have to execute the path with the help of the
+ <i>ModeLiteral</i> values.
+ <br>At the
+ <i>RunnableModeSwitch</i> it is also possible to define a default path, which is executed if none of the
+ <i>ModeSwitchEntries</i> fits to the current set value of the mode.
+ </p>
+ <p>
+ <img src="images/model_sw_runnablemodeswitch.png"/>
+ </p>
+
+
+<h4><a id="section3.14.8.9"></a>Runnable Probability Switch</h4>
+ <p>Each entry (path) of a
+ <i>Runnable Probability Switch</i> has a probability-value. As the name indicates, this is the value that defines the probability that the path is executed. It is computed as a fraction of its value divided by the sum of all
+ <i>Probability Switch Entries</i> in the surrounding switch.
+ </p>
+ <p>
+ <img src="images/model_sw_runnableprobabilityswitch.png"/>
+ </p>
+
+
+<h4><a id="section3.14.8.10"></a>Ticks</h4>
+ <p>
+ <i>Ticks</i> allow to specify the required execution "time" in a basic way. They are the equivalent of cycles in the hardware domain and the execution time can easily be calculated if the frequency of the executing
+ <i>ProcessingUnit</i> (PU) is known.
+ <br>Detailed definition: see <a href="#basics-ticks">Ticks</a>
+ </p>
+
+
+<h4><a id="section3.14.8.11"></a>Execution Need</h4>
+ <p>
+ <i>ExecutionNeed</i> allows to specify the required execution "time" in a more abstract way. Multiple
+ <i>NeedEntries</i> can be used to specify execution characteristics. There is a map of default entries and (optional) maps of entries for specific hardware types (e.g. FPGA). These extended entries are also implemented as a map with a processing unit definition as the key.
+ </p>
+ <p>
+ <img src="images/model_sw_executionneed.png"/>
+ </p>
+ <p>A simple approach (equivalent to the
+ <i>RunnableInstructions</i> in older versions of the AMALTHEA model) is the specification of the "number of generic instructions" that have to be executed. Together with the hardware feature "instructions per cycle (IPC)" and the frequency of a processing unit it permits the calculation of the execution time on a specific processing unit.
+ </p>
+ <p>
+ <img src="images/model_sw_hw_features_executionneed.png"/>
+ </p>
+ <p>With the generic concept of
+ <i>ExecutionNeeds</i> it is also possible to describe more detailed characteristics, e.g. instruction mixes of floating point operations, integer operations, load/store operations, etc., or any other relevant aspect.
+ </p>
+
+
+<h4><a id="section3.14.8.12"></a>Statistical Values</h4>
+ <p>
+ <img src="images/model_sw_statistic.png"/>
+ </p>
+ <p>It is possible to add to different elements (as shown in the picture above) different types of statistical values. These values can be used to describe in more detail the following behaviors:</p>
+ <ul>
+ <li>
+ <i>RunEntityCallStatistic</i>: Can be used to describe in more detail the dynamic call behavior of a [
+ <i>Task</i> -
+ <i>Runnable</i>] or [
+ <i>Runnable</i> -
+ <i>Runnable</i>] call. The value is representing how often the call is performed.
+ </li>
+ <li>
+ <i>LabelAccessStatistic</i>: Describes in more detail the dynamic behavior accessing a
+ <i>Label</i> by having cache misses or how often a read/write is performed.
+ </li>
+ <li>
+ <i>InstructionFetch</i>: Describes the behavior to fetch instructions from the memory.
+ </li>
+ </ul>
+
+
+<h3><a id="section3.14.9">3.14.9 </a>Tasks / ISR</h3>
+ <p>The following figure shows the structure which describes
+ <i>Tasks</i> and Interrupt Service Routines (
+ <i>ISR</i>) in the AMALTHEA software model. The abstract class
+ <i>Process</i> generalizes ISRs and Tasks and provides the common attributes, like priority for priority based scheduling algorithms or the activation represented by the
+ <i>Stimulus</i>. A
+ <i>Task</i> or
+ <i>ISR</i> contains
+ <i>calls</i> either to other Tasks or Runnables. These types of
+ <i>calls</i> are included in the
+ <i>callGraph</i> attribute.
+ </p>
+ <p>
+ <img class="scale" src="images/model_sw_task_isr.png"/>
+ </p>
+ <table class="minimal" style="padding:10px; border:1px solid black; background:#f8f8f8">
+ <tr>
+ <th colspan="1" rowspan="1">Name</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>name</i>
+ </td>
+ <td colspan="1" rowspan="1">Name of the process</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>stimuli</i>
+ </td>
+ <td colspan="1" rowspan="1">Reference to one or more
+ <i>Stimuli</i> representing the different types of possible activations of this
+ <i>Process</i>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>callGraph</i>
+ </td>
+ <td colspan="1" rowspan="1">List of task calls. This specifies the behavior of the process. The objects will be executed in the same order they are stored in the list.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>preemption</i>
+ </td>
+ <td colspan="1" rowspan="1">Defines the preemption of a task by higher priority tasks.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>multipleTaskActivationLimit</i>
+ </td>
+ <td colspan="1" rowspan="1">Defines the maximal number of existing instances from the same task, which is checked for load limitation reasons when a task is activated. For the case of an exceeded multipleTaskActivationLimit, the activation is ignored.</td>
+ </tr>
+ </table>
+
+
+<h3><a id="section3.14.10">3.14.10 </a>The Call Graph</h3>
+ <p>The
+ <i>Call Graph</i> is used to define how a
+ <i>Task</i> or
+ <i>ISR</i> behaves during its execution. For that it contains two different kinds of elements,
+ <i>Call Sequences</i> and
+ <i>Switches</i>. The following picture shows the data structure of a
+ <i>Call Graph</i>:
+ </p>
+ <p>
+ <img class="scale" src="images/model_sw_task_callgraph.png"/>
+ </p>
+ <p>The
+ <i>Call Graph</i> contains a list of elements of type
+ <i>GraphEntryBase</i>. This is the basic, abstract type for the
+ <i>Switch</i> types and for the
+ <i>Call Sequence</i>. With the
+ <i>Switches</i> it is possible to define different execution paths. They can be used like
+ <i>if-else</i> or
+ <i>switch-case</i> statements in a programming language. There are two different kind of
+ <i>Switches</i>, a
+ <i>Mode Switch</i> and a
+ <i>Probability Switch</i>. Each
+ <i>Switch</i> contains a number
+ <i>Switch Entry</i> objects. These are the different possible program paths that can be executed. Also like the
+ <i>Call Graph</i>, the
+ <i>Switch Entry</i> can contain a list of objects that can be
+ <i>Switches</i> or
+ <i>Call Sequences</i>.
+ </p>
+
+
+<h4><a id="section3.14.10.1"></a>Mode Switch</h4>
+ <p>A
+ <i>Mode Switch</i> uses the value of a
+ <i>Mode Label</i> to decide which entry has to be executed. Therefore a
+ <i>Mode Label</i> object is referenced (via ModeValueProvider) and each entry defines the values the mode label must have to execute the path.
+ </p>
+ <p>
+ <img class="scale" src="images/model_sw_modeswitch.png"/>
+ </p>
+
+
+<h4><a id="section3.14.10.2"></a>Probability Switch</h4>
+ <p>Each entry (path) of a
+ <i>Probability Switch</i> has a probability-value. As the name indicates, this is the value that defines the probability that the path is executed. It is computed as a fraction of its value divided by the sum of all
+ <i>Probability Switch Entries</i> in the surrounding switch.
+ </p>
+ <p>
+ <img class="scale" src="images/model_sw_probabilityswitch.png"/>
+ </p>
+
+
+<h4><a id="section3.14.10.3"></a>Call Sequence</h4>
+ <p>A
+ <i>Call Sequence</i> contains a list of elements that are executed by the
+ <i>Process</i>. The following list gives a short overview over these elements:
+ </p>
+ <ul>
+ <li>
+ <i>Wait Event</i>: Wait for an
+ <i>OS-Event</i>
+ </li>
+ <li>
+ <i>Clear Event</i>: Clear an
+ <i>OS-Event</i>
+ </li>
+ <li>
+ <i>Set Event</i>: Set/Fire an
+ <i>OS-Event</i>
+ </li>
+ <li>
+ <i>Enforced Migration</i>: Migrate to another
+ <i>Scheduler</i>
+ </li>
+ <li>
+ <i>Inter Process Trigger</i>: "Start" another
+ <i>Process</i> (via Trigger and Stimulus)
+ </li>
+ <li>
+ <i>Schedule Point</i>: Trigger the Scheduler
+ </li>
+ <li>
+ <i>Task Runnable Call</i>: Invoke a
+ <i>Runnable</i>
+ </li>
+ </ul>
+ <p>The following picture shows the structure of a
+ <i>Call Graph</i>. The graph is like a tree of
+ <i>Call Sequences</i> and
+ <i>Switches</i>. The
+ <i>Call Sequences</i> are used to define what the task is actually executing. With the
+ <i>Switches</i> it is possible to define alternative execution paths. The elements of the graph are executed in the order they are stored in the data model. The same goes for the elements within a
+ <i>Call Sequence</i>.
+ </p>
+ <p>
+ <img src="images/model_sw_task_callgraph_structure.png"/>
+ </p>
+
+
+<h3><a id="section3.14.11">3.14.11 </a>Call Sequence Content</h3>
+ <p>As already explained, the content of a
+ <i>Call Sequence</i> specifies what a process is actually doing when it is executed.
+ <br>This section describes the different entry-types of a
+ <i>Call Sequence</i>.
+ </p>
+
+
+<h4><a id="section3.14.11.1"></a>Task Runnable Call</h4>
+ <p>With the
+ <i>Task Runnable Call</i> the process executes a specific runnable.
+ </p>
+
+
+<h4><a id="section3.14.11.2"></a>Enforced Migration</h4>
+ <p>Each process is controlled by at least one scheduler. A scheduler is the resource owner of one or multiple processor cores (The scheduler decides on which of its cores the process is executed). The
+ <i>Enforced Migration</i> forces the process to switch to another scheduler. Therefore the
+ <i>Enforced Migration</i> entry contains a reference to the new scheduler.
+ </p>
+
+
+<h4><a id="section3.14.11.3"></a>Inter Process Trigger</h4>
+ <p>The
+ <i>Inter Process Trigger</i> references a stimulus of type
+ <i>Inter Process Stimulus</i>. The execution of an
+ <i>Inter Process Trigger</i> entry triggers the processes that are mapped to this stimulus.
+ </p>
+
+
+<h4><a id="section3.14.11.4"></a>Schedule Point</h4>
+ <p>At a
+ <i>Schedule Point</i>, the process calls the scheduler that currently administrates it. This is used for cooperative task scheduling (see OSEK Specification 2.2.3, 2005).
+ </p>
+
+
+<h4><a id="section3.14.11.5"></a>Terminate Process</h4>
+ <p>If a
+ <i>Terminate Process</i> is reached during the execution of a
+ <i>Call Graph</i>, the
+ <i>Task</i> or
+ <i>ISR</i> terminates immediately. It is not required to insert this element at the end of a
+ <i>Call Graph</i>. It can be used to define an execution path (by using
+ <i>Switches</i>) that terminates a process.
+ </p>
+
+
+<h4><a id="section3.14.11.6"></a>Wait/Clear/Set Event</h4>
+ <p>The AMALTHEA Software Model contains a list of
+ <i>OS-Event</i> objects. These can be used for task synchronization. To deal with
+ <i>OS-Events</i> a
+ <i>Call Sequence</i> can execute the elements
+ <i>Wait Event</i>,
+ <i>Clear Event</i> and
+ <i>Set Event</i>.
+ </p>
+ <p>
+ <img src="images/model_sw_osevents.png"/>
+ </p>
+ <p>With
+ <i>Wait Event</i> the process waits for a number of events (defined in the
+ <i>Event Mask</i>) to be set. Here it can be defined if the process waits just for one of the
+ <i>OS-Events</i> (maskType = OR) or for all of them (maskType = AND). The
+ <i>waiting behaviour</i> defines if the process is blocking the core when it waits (active) or not (passive).
+ </p>
+ <p>
+ <i>Set Event</i> sets/fires a list of
+ <i>OS-Events</i>. Here it is possible to define a context for the
+ <i>OS-Event</i>. If a process is referenced, then the
+ <i>OS-Events</i> are set just for this process.
+ </p>
+ <p>The execution of a
+ <i>Clear Event</i> entry unsets all referenced
+ <i>OS-Events</i>.
+ </p>
+ <p>For more information about OS-Events, see the OSEK Specification 2.2.3, 2005. </p>
+
+
+<h3><a id="section3.14.12">3.14.12 </a>Modes</h3>
+
+
+<h4><a id="section3.14.12.1"></a>Modes and Mode Labels</h4>
+ <p>The
+ <i>Mode</i> element denotes a specific system state. It is described using the following attributes:
+ </p>
+ <p>
+ <img class="scale" src="images/model_sw_modes.png"/>
+ </p>
+ <table class="minimal" style="padding:10px; border:1px solid black; background:#f8f8f8">
+ <tr>
+ <th colspan="1" rowspan="1">Name</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>name</i>
+ </td>
+ <td colspan="1" rowspan="1">Name of the mode</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>literals</i>
+ </td>
+ <td colspan="1" rowspan="1">Enumeration values of the mode</td>
+ </tr>
+ </table>
+ <p>Modes are used in
+ <i>Mode Switches</i> inside the
+ <i>Call Graph</i> of
+ <i>Tasks</i> and
+ <i>ISRs</i> using
+ <i>Mode Labels</i>. Moreover, mode labels are used to enable and disable
+ <i>Stimuli</i>.
+ </p>
+ <p>The
+ <i>Mode Label</i> element represents a value of a specific
+ <i>Mode</i>. Is is described using the following attributes:
+ </p>
+ <table class="minimal" style="padding:10px; border:1px solid black; background:#f8f8f8">
+ <tr>
+ <th colspan="1" rowspan="1">Name</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>name</i>
+ </td>
+ <td colspan="1" rowspan="1">Name of the mode label</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>displayName</i>
+ </td>
+ <td colspan="1" rowspan="1">In addition to the name attribute, which must be unique, a mode label can also be described by an additional and optional display name. The displayName attribute must not be unique. It can be used for example to represent specification data, which can be different from the unique name (like a symbol) of an available software build.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>mode</i>
+ </td>
+ <td colspan="1" rowspan="1">Reference of the
+ <i>Mode</i>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>initialValue</i>
+ </td>
+ <td colspan="1" rowspan="1">Initial value of the referenced mode</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section3.14.12.2"></a>Mode Changes</h4>
+ <p>The value of the mode label can be changed from its initial value using the set-mode-labels-list of a
+ <i>Stimulus</i>.
+ </p>
+ <p>Another possibility is a write access within a Runnable via
+ <i>Mode Label Access</i>.
+ </p>
+
+
+<h4><a id="section3.14.12.3"></a>Mode Conditions</h4>
+ <p>Mode conditions allow to specify dedicated states of the overall system.
+ <br>Depending on the condition evaluation (via
+ <i>isSatisfiedBy()</i>) switches can be executed or stimuli can be influenced.
+ <br>The ModeValueMap represents the system state that has to be provided as an external input, e.g. from a simulation or analysis tool.
+ </p>
+ <p>
+ <img class="scale" src="images/model_sw_modecondition.png"/>
+ </p>
+
+
+<h3><a id="section3.14.13">3.14.13 </a>Process Prototypes</h3>
+ <p>
+ <img class="scale" src="images/model_sw_process_prototype.png"/>
+ </p>
+ <p>In addition to the Task elements, the AMALTHEA model contains an element process prototype.
+ <br>This prototype can be used to define raw data of a task. It can be used to specify access to
+ <br>labels (read, write) or other runnables/functions as possible with the normal task, but not the
+ <br>order of the access. These prototypes are then processed by different algorithms. The algorithms are creating the tasks, are filling, verifying or modifying the data based on their different checks. The final result of this processing are tasks, which are corresponding to the data of the prototypes.
+ </p>
+ <p>
+ <img src="images/process_prototypes.png"/>
+ </p>
+ <p>These tasks are representing the current state and can be further processed, for example to generate code or further simulation. With the process prototypes available in the model, it is possible to define the structure of the software in an early development phase. The implementation at that moment is open and not yet completed, but the general idea can be verified.
+ <br>Another issue can be the distribution to a multi-core system, coming from a single-core system. Therefore the call graph can be analyzed and computed to get the right order and parallelization of the elements and dependencies.
+ </p>
+
+
+<h3><a id="section3.14.14">3.14.14 </a>Process Chains</h3>
+ <p>The following figure shows the structure which describes
+ <i>Process Chains</i> in the AMALTHEA software model. A process chain is used to group task and isrs together which are executing after each other and represent an end-to-end data processing path. The processes inside a process chain are connected via
+ <i>Inter Process Activations</i>.
+ </p>
+ <p>
+ <img src="images/model_sw_process_chain.png"/>
+ </p>
+ <p>The following attributes are describing a process chain:</p>
+ <table class="minimal" style="padding:10px; border:1px solid black; background:#f8f8f8">
+ <tr>
+ <th colspan="1" rowspan="1">Name</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>name</i>
+ </td>
+ <td colspan="1" rowspan="1">Name of the process chain</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <i>processes</i>
+ </td>
+ <td colspan="1" rowspan="1">List of tasks and isrs which are included in the process chain</td>
+ </tr>
+ </table>
+
+
+<h3><a id="section3.14.15">3.14.15 </a>Custom Entities</h3>
+ <p>
+ <img src="images/model_custom_entity.png"/>
+ </p>
+ <p>The
+ <i>CustomEntity</i> element defines a way to add not yet available elements of the software model in a generic way. The only contained attribute defines the type of the entity by setting it as a
+ <i>String</i>. Additional properties can be set using the
+ <i>CustomAttributes</i>.
+ </p>
+
+
+<h3><a id="section3.14.16">3.14.16 </a>Section</h3>
+ <p>Section (Virtual Memory Section) is used to group the memory elements (Labels, Runnables). This is achieved by associating the
+ <strong>Section</strong> element to
+ <strong>Label</strong> &amp;
+ <strong>Runnable</strong> elements
+ </p>
+ <p>Below are properties of Section element:</p>
+ <ul>
+ <li>name</li>
+ <li>asilLevel</li>
+ </ul>
+ <p>
+ <img src="images/model_section.png"/>
+ </p>
+ <p>With this type of information available, the complexity of mapping software components to memories can be reduced. The next picture gives an overview about the general idea of the mapping with Sections.</p>
+ <p>
+ <img src="images/model_section_memory.png"/>
+ </p>
+
+
+<h3><a id="section3.14.17">3.14.17 </a>Data Dependencies and Runnable Parameters</h3>
+
+
+<h4><a id="section3.14.17.1"></a>Overview</h4>
+ <p>The purpose of following model elements is to describe a high level data flow. Parameters of runnables (or services) and specific call arguments allow to model a behavior that depends on the call tree but the detailed computation and the control flow within a runnable are not taken into account. Therefore only "potential" influences are modeled. The following picture shows this data flow with dashed lines.</p>
+ <p>
+ <img src="images/model_sw_dataflow_overview.png"/>
+ </p>
+
+
+<h4><a id="section3.14.17.2"></a>Elements with data dependency</h4>
+ <p>The data flow is specified with "depends on" references. Elements that can specify a dependency are:</p>
+ <ul>
+ <li>
+ <i>
+ <b>LabelAccess</b>
+ </i> of type "WRITE"
+ </li>
+ <li>
+ <i>
+ <b>CallArgument</b>
+ </i> that refers to an "IN" (or "INOUT") parameter
+ </li>
+ <li>
+ <i>
+ <b>RunnableParameter</b>
+ </i> with direction "OUT" (or "INOUT")
+ </li>
+ </ul>
+ <p>
+ <img src="images/model_sw_depends_on.png"/>
+ </p>
+
+
+<h4><a id="section3.14.17.3"></a>Data Dependency</h4>
+ <p>A data dependency defines the elements that can influence a value that is written or transferred. Possible origins are:</p>
+ <ul>
+ <li>
+ <i>
+ <b>Label</b>
+ </i>
+ </li>
+ <li>
+ <i>
+ <b>RunnableParameter</b>
+ </i> with direction "IN" (or "INOUT")
+ </li>
+ <li>
+ <i>
+ <b>CallArgument</b>
+ </i> that refers to an "OUT" (or "INOUT") parameter
+ </li>
+ </ul>
+ <p>
+ <img src="images/model_sw_data_dependency.png"/>
+ </p>
+</article>
+
+
+<article>
+<h1><a id="section4">4 </a>Developer Guide</h1>
+
+
+<h2><a id="section4.1">4.1 </a>Overview of Features and Plug-ins</h2>
+
+
+<h3><a id="section4.1.1">4.1.1 </a>Features</h3>
+ <p>There are two top-level features of the AMALTHEA Tool Platform, the AMALTHEA Tool Platform and the AMALTHEA Tool Platform SDK features. The non-SDK feature contains everything you need to run the AMALTHEA tools and models. If you like to develop new tools on top of the models or extend the models you may need the SDK. It contains beside the runtime all sources.</p>
+ <p>The top-level feature itself contains basic platform plug-ins and tools as well as several sub-features. These are</p>
+ <ul>
+ <li>APP4MC Platform – Platform (includes all features and 3rd party libraries).</li>
+ <li>APP4MC Docu – Basic Help (is extended by loading other features).</li>
+ <li>APP4MC Examples – Examples that can be added by the example wizard.</li>
+ </ul>
+ <ul>
+ <li>APP4MC Multicore – Algorithms for multicore development like partitioning and mapping.</li>
+ <li>APP4MC Tracing – Record, analyze and transform runtime traces of the embedded system.</li>
+ <li>APP4MC Validation – Model validations (can be selected and executed on demand).</li>
+ </ul>
+ <ul>
+ <li>AMALTHEA Models – AMALTHEA models (EMF).</li>
+ <li>AMALTHEA Edit – AMALTHEA model edit support.</li>
+ <li>AMALTHEA Editors – Editors for the models.</li>
+ </ul>
+ <ul>
+ <li>AMALTHEA Converters – Independent feature for AMALTHEA model migration.</li>
+ </ul>
+ <ul>
+ <li>AMALTHEA Workflow Common – Basic elements to define workflows on the model.</li>
+ <li>AMALTHEA Workflow – Defining workflows (based on MWE2 workflow engine).</li>
+ <li>AMALTHEA Workflow Scripting – Defining workflows (based on EASE scripting).</li>
+ </ul>
+ <ul>
+ <li>AMALTHEA Import – Import of the models.</li>
+ <li>AMALTHEA Export – Exports of the models.</li>
+ </ul>
+ <p>
+ <img src="images/app4mc_platform_features.png"/>
+ </p>
+ <p>For all features there also exists an SDK containing the sources. If you install the AMALTHEA Tool Platform SDK, it contains all features as SDKs.</p>
+
+
+<h3><a id="section4.1.2">4.1.2 </a>Plug-ins</h3>
+ <p>The plug-ins are organized in various namespaces. The ids of most plug-ins containing models are within the namespace
+ <code>org.eclipse.app4mc.amalthea.model</code>, whereas examples can be found in plug-ins named
+ <code>org.eclipse.app4mc.amalthea.example</code>.
+ </p>
+
+
+<h2><a id="section4.2">4.2 </a>Model Validation</h2>
+ <p>AMALTHEA uses for custom model validations the
+ <a href="https://projects.eclipse.org/projects/modeling.mdt.sphinx">Sphinx validation project</a> which is based on
+ <a href="http://www.eclipse.org/modeling/emf/?project=validation">EMF validation </a>.
+ </p>
+
+
+<h3><a id="section4.2.1">4.2.1 </a>Understanding Check Catalogs</h3>
+ <p>A Sphinx validator optionally makes use of a Catalog. When a catalog is used, each @Check annotations should have a
+ <i>constraint name</i> (which can be seen as unique id) to match a constraint in the catalog. So there is a logical mapping from methods to constraints. For a constraint to be applicable within the scope of a validator, the set of categories specified in its @Check annotation should be a subset of the set of categories referenced by the constraint in the check catalog. In other words, categories are used to restrict applicability to check methods.
+ </p>
+ <p>Following catalog is going to demonstrate the relationship between categories and constraint. </p>
+ <p>
+ <img class="gray" src="images/2015-06-19_sphinx_validation_catalog.png"/>
+ </p>
+ <p>Except for constraint
+ <i>check 5</i> each other constraint is assigned to at least one category. Constraints
+ <i>check 4</i> and
+ <i>check 5</i> are linked to multiple categories.
+ </p>
+ <p>Hint: The assignment from constraint to one or more categories could also be done in the @Check annotation itself.</p>
+
+
+<h3><a id="section4.2.2">4.2.2 </a>Adding own Validations</h3>
+ <p>Adding an own validation to the AMALTHEA framework can be done by the following steps:</p>
+
+
+<h3><a id="section4.2.3">4.2.3 </a>Plugin dependencies</h3>
+ <p>org.eclipse.core.runtime,
+ <br>org.eclipse.sphinx.emf,
+ <br>org.eclipse.sphinx.emf.check,
+ <br>org.eclipse.app4mc.amalthea.model
+ </p>
+
+
+<h4><a id="section4.2.3.1"></a>Implementation</h4>
+ <p>Create a class which is extending
+ <code>org.eclipse.sphinx.emf.check.AbstractCheckValidator</code> and implement a method of arbitrary name and tag it with the
+ <code>check</code> annotation. At this point it is important to know that at least one parameter is needed for the check method. For instance, if you want to perform a check related to the whole AMALTHEA model you should consider
+ <code>org.eclipse.app4mc.amalthea.model.Amalthea</code> as parameter type. An empty parameter list will never activate the check for your AMALTHEA model. This raises the capability of an so called out-of-the-box scoping which means that the validation checks only appears on the relevant model elements
+ <br>(e.g. validations related to the AMALTHEA software model may only appear when right-clicking on an appropriate model element of type Software)
+ </p>
+ <pre xml:space="preserve"><code>import org.eclipse.sphinx.emf.check.AbstractCheckValidator;
+import org.eclipse.sphinx.emf.check.Check;
+import org.eclipse.app4mc.amalthea.model.Amalthea;
+
+
+public class BasicExampleConstraint extends AbstractCheckValidator {
+
+ /**
+ *
+ * constraint:
+ * Must match at least to one existing constraint from the check catalog
+ *
+ * categories:
+ * Is of type array, thus constraint can be assigned to multiple categories
+ *
+ */
+ @Check(constraint = "BasicExampleConstraint", categories = { "BasicCategory", ...and many more ... })
+ void checkVeryImportantConstraint(final Amalthea ama)
+ {
+
+ /**
+ * Perform your check
+ */
+
+ error("Error occurs", ama, ama.eContainingFeature());
+ warning("Warning occurs", ama, ama.eContainingFeature());
+ info("Info occurs", ama, ama.eContainingFeature());
+ // Error type information is taken directly from catalog
+ issue(ama, ama.eContainingFeature());
+ }
+}
+</code></pre>
+ <p><!-- --></p>
+ <p>Create your own class and insert at least one method extended by the
+ <code>check</code> Sphinx annotation. The method should contain exactly one parameter of at least the type of the most generic model element of the AMALTHEA model (i.e.
+ <code>org.eclipse.app4mc.amalthea.model.Amalthea</code>).
+ <br>Implement the validate method by adding your own custom validation.
+ </p>
+
+
+<h4><a id="section4.2.3.2"></a>Plugin configuration</h4>
+ <p>Add an
+ <i>extension point</i> called
+ <code>org.eclipse.sphinx.emf.check.checkvalidators</code> and for each implemented constraint a child entry for your class to the plugin.xml to register it in the Sphinx Validation framework. For each child entry you must specify your constraint class (including @Check annotated methods) and optionally a catalog which contains more detailed information about the composition and relationship between constraints.
+ </p>
+ <p>The current configuration of the AMALTHEA model validations can be found in the plugin
+ <i>org.eclipse.app4mc.amalthea.validation</i> in the
+ <i>plugin.xml</i>.
+ </p>
+ <p>There the constraints section includes the list of available validations and their corresponding implementation class.</p>
+
+
+<h2><a id="section4.3">4.3 </a>Model Workflow</h2>
+
+
+<h3><a id="section4.3.1">4.3.1 </a>Introduction</h3>
+ <p>The APP4MC AMALTHEA platform provides the option to define a workflow on a model with different steps. AMALTHEA provides a simple API for implementing such a workflow. The definition of the workflow can be done either in plain Java or any other language, which is able to access Java classes.</p>
+ <p>The
+ <a href="https://www.eclipse.org/ease/">EASE</a> framework provides a scripting environment inside of Eclipse with different script engines like Rhino (JavaScript), Jython or Groovy. AMALTHEA provides a sample and some convenient helpers based on EASE to define and execute such a workflow.
+ </p>
+ <p>As an alternative APP4MC provides also an implementation for the
+ <a href="http://www.eclipse.org/Xtext/documentation/302_configuration.html">Modeling Workflow Engine 2 (MWE2)</a>, coming from the Xtext framework. The definition of the workflow can be done in a textual syntax from MWE2, containing different components which are working on the given model.
+ </p>
+ <p>AMALTHEA provides several plugins for this purpose:</p>
+ <dl>
+ <dt>org.eclipse.app4mc.amalthea.workflow.core</dt>
+ <dd>Includes basic API and some predefined workflow components, which can be used independent from any framework.</dd>
+ </dl>
+ <dl>
+ <dt>org.eclipse.app4mc.amalthea.workflow.ease</dt>
+ <dd>Provides some helper modules for EASE</dd>
+ </dl>
+ <dl>
+ <dt>org.eclipse.app4mc.amalthea.workflow.mwe2</dt>
+ <dd>Provides basic classes for usage with MWE2</dd>
+ </dl>
+
+
+<h3><a id="section4.3.2">4.3.2 </a>General Structure</h3>
+ <p>The plugin
+ <i>org.eclipse.app4mc.amalthea.workflow.core</i> provides a general abstract class
+ <code>org.eclipse.app4mc.amalthea.workflow.core.WorkflowComponent</code> which can be used to extend in the case to provide or implement an own workflow step.
+ </p>
+ <p>
+ <img src="images/uml_workflow_component.png"/>
+ </p>
+ <p>It provides the following features:</p>
+ <ul>
+ <li>Defines the constant
+ <code>AMALTHEA_SLOT</code>, which can be used to store and retrieve the AMALTHEA model from the
+ <code>org.eclipse.app4mc.amalthea.workflow.core.Context</code>.
+ </li>
+ <li>Provides some convenient methods to retrieve the model from the context, get a copy of the model or store the model in the context.</li>
+ </ul>
+ <p>The interface
+ <code>org.eclipse.app4mc.amalthea.workflow.core.Context</code> provides convenient methods to store and retrieve data in a
+ <code>org.eclipse.app4mc.amalthea.workflow.core.WorkflowComponent</code>.
+ </p>
+ <p>
+ <img src="images/uml_context.png"/>
+ </p>
+ <p>The class
+ <code>org.eclipse.app4mc.amalthea.workflow.core.DefaultContext</code> is a default implementation using an internal
+ <code>java.util.HashMap</code> to store the data.
+ </p>
+ <p>
+ <img src="images/uml_default_context.png"/>
+ </p>
+ <p>A sample workflow implementation with two components
+ <code>WorkfklowComponent1</code> and
+ <code>WorkflowComponent2</code> can look like the following structure.
+ </p>
+ <p>Both classes are extending
+ <code>org.eclipse.app4mc.amalthea.workflow.core.WorkflowComponent</code>.
+ </p>
+ <p>
+ <img src="images/uml_workflow_overview.png"/>
+ </p>
+ <p>The next step is to create a
+ <i>WorkflowDefinition</i>, which needs to do the following steps:
+ </p>
+ <ol>
+ <li>Create an instance of a
+ <code>org.eclipse.app4mc.amalthea.workflow.core.Context</code> using the
+ <code>org.eclipse.app4mc.amalthea.workflow.core.DefaultContext</code>
+ </li>
+ <li>Create an instance of
+ <code>WorkflowComponent1</code> and configure it if needed with the proper setter methods
+ </li>
+ <li>Call the
+ <i>run</i> method of
+ <code>WorkflowComponent1</code> and pass the context
+ </li>
+ <li>Create an instance of
+ <code>WorkflowComponent2</code> and configure it if needed with the proper setter methods
+ </li>
+ <li>Call the
+ <i>run</i> method of
+ <code>WorkflowComponent2</code> and pass the context
+ </li>
+ </ol>
+ <p>Therefore using the context, data can be shared between the different workflow component implementations.
+ <br>The following diagram is showing this flow in more detail:
+ </p>
+ <p>
+ <img src="images/uml_workflow_overview_sequence.png"/>
+ </p>
+
+
+<h3 id="workflow-basic-components"><a id="section4.3.3">4.3.3 </a>Available Basic Components</h3>
+ <p>The APP4MC AMALTHEA platform ships with some available workflow steps, which can be used out of the box.</p>
+
+
+<h4><a id="section4.3.3.1"></a>Model Reader</h4>
+ <p>The component
+ <code>org.eclipse.app4mc.amalthea.workflow.component.ModelReader</code> reads a given list of files containing AMALTHEA models. The result model is stored in the
+ <code>AMALTHEA_SLOT</code> as default. Please refer the JavaDoc for more details.
+ </p>
+ <p>
+ <img src="images/uml_model_reader.png"/>
+ </p>
+ <p>Simple configuration inside of a workflow can look like the following:</p>
+ <pre xml:space="preserve"><code>ModelReader reader = new ModelReader();
+reader.addFileName("path to file");
+reader.run(ctx);
+</code></pre>
+ <p><!-- --></p>
+
+
+<h4><a id="section4.3.3.2"></a>Model Writer</h4>
+ <p>The component
+ <code>org.eclipse.app4mc.amalthea.workflow.component.ModelWriter</code> writes a given AMALTHEA model to either one file or several files. As default the current available model in the
+ <code>AMALTHEA_SLOT</code> is taken.
+ <br>The following parameters are available to set:
+ </p>
+ <ul>
+ <li>
+ <code>boolean singleFile</code> default
+ <code>true</code>
+ </li>
+ <li>
+ <code>String</code>
+ <code>outputDir</code>
+ </li>
+ <li>
+ <code>String</code>
+ <code>fileName</code>, if output is set to split files the different models are separated by an additional suffix in the name indicating the contained model.
+ </li>
+ </ul>
+ <p>
+ <img src="images/uml_model_writer.png"/>
+ </p>
+ <p>Sample configuration inside of a workflow:</p>
+ <pre xml:space="preserve"><code>ModelWriter writer = new ModelWriter();
+writer.setOutputDir("path to dir");
+writer.setFileName("output.amxmi");
+writer.run(ctx);
+</code></pre>
+ <p><!-- --></p>
+
+
+<h4><a id="section4.3.3.3"></a>Add Schedule Points</h4>
+ <p>The component
+ <code>org.eclipse.app4mc.amalthea.workflow.component.AddSchedulePoints</code> modifies a given model (default in the
+ <code>AMALTHEA_SLOT</code>) in that way, that in the
+ <code>org.eclipse.app4mc.amalthea.model.sw.SWModel</code> the contained
+ <code>org.eclipse.app4mc.amalthea.model.sw.Task</code> elements are checked if the preemption is set to cooperative. If this is the case, it will add between the elements of the
+ <code>org.eclipse.app4mc.amalthea.model.sw.CallGraph</code> new elements of type
+ <code>org.eclipse.app4mc.amalthea.model.sw.SchedulePoint</code>.
+ </p>
+ <p>
+ <img src="images/uml_add_schedule_points.png"/>
+ </p>
+ <p>Sample configuration inside of a workflow:</p>
+ <pre xml:space="preserve"><code>AddSchedulePoints addSchedulePoints = new AddSchedulePoints();
+addSchedulePoints.run(ctx);
+</code></pre>
+ <p><!-- --></p>
+
+
+<h3><a id="section4.3.4">4.3.4 </a>Other Components</h3>
+
+
+<h4 id="component-create-tasks"><a id="section4.3.4.1"></a>Create Tasks</h4>
+ <p>The component
+ <code>org.eclipse.app4mc.multicore.openmapping.workflow.CreateTasks</code> from the plugin
+ <i>org.eclipse.app4mc.multicore.openmapping</i> is the corresponding workflow element for the
+ <a href="#example-task-creation">Task creation example</a>. It takes a copy of a given model (defaults to
+ <code>AMALTHEA_SLOT</code>) and performs the action
+ <code>org.eclipse.app4mc.multicore.openmapping.algorithms.taskgen.pragmatic.PragmaticTaskCreator</code>. The result of this action is stored as default in the model slot
+ <i>createtasks</i>.
+ </p>
+ <p>
+ <img src="images/uml_create_tasks.png"/>
+ </p>
+ <p>Sample configuration inside of a workflow:</p>
+ <pre xml:space="preserve"><code>CreateTasks ct = new CreateTasks();
+ct.run(ctx);
+</code></pre>
+ <p><!-- --></p>
+
+
+<h4 id="component-generate-mapping"><a id="section4.3.4.2"></a>Generate Mapping</h4>
+ <p>The component
+ <code>org.eclipse.app4mc.multicore.openmapping.workflow.GenerateMapping</code> from the plugin
+ <i>org.eclipse.app4mc.multicore.openmapping</i> is the corresponding workflow element for the
+ <a href="#example-mapping-1">Mapping example</a>. It takes a copy of a given model (defaults to
+ <code>AMALTHEA_SLOT</code>) and performs one of the actions
+ <code>org.eclipse.app4mc.multicore.openmapping.algorithms.heuristic.lb.LoadBalancingDFG</code> or
+ <code>org.eclipse.app4mc.multicore.openmapping.algorithms.ilp.lb.ILPBasedLoadBalancing</code> or
+ <code>org.eclipse.app4mc.multicore.openmapping.algorithms.ilp.energyminimization.EnergyMinimization</code> or
+ <code>org.eclipse.app4mc.multicore.openmapping.algorithms.ga.lb.GABasedLoadBalancing</code> depending on the parameter
+ <code>mappingAlg</code>. The result of this action is stored as default in the model slot
+ <i>mapping</i>.
+ <br>Parameter:
+ </p>
+ <ul>
+ <li>
+ <code>String</code>
+ <code>mappingAlg</code> with the value of either
+ <i>dfg</i> or
+ <i>ilp_lb</i> or
+ <i>ilp_energy</i> or
+ <i>ga_lb</i>
+ </li>
+ </ul>
+ <p>Sample configuration inside of a workflow:</p>
+ <pre xml:space="preserve"><code>GenerateMapping mappingDfg = new GenerateMapping();
+mappingDfg.setModelSlot("createtasks");
+mappingDfg.setMappingAlg("dfg");
+mappingDfg.setEnableLog(true);
+mappingDfg.run(ctx);
+</code></pre>
+ <p><!-- --></p>
+
+
+<h3><a id="section4.3.5">4.3.5 </a>EASE modules</h3>
+ <p>The purpose of using EASE is to provide one way to define and run a workflow for a model.
+ <br>Therefore APP4MC provides some helper methods to be used in the
+ <a href="https://www.eclipse.org/ease/">EASE</a> scripting environment.
+ <br>The modules are provided by the plugin
+ <i>org.eclipse.app4mc.amalthea.workflow.
+ <strong>ease</strong>
+ </i>.
+ </p>
+
+
+<h4><a id="section4.3.5.1"></a>Workflow Module</h4>
+ <p>The workflow module provides some helpers regarding running a APP4MC workflow definition based on EASE.
+ <br>The general module can be loaded with the following line:
+ </p>
+ <pre xml:space="preserve"><code>loadModule('/APP4MC/Workflow')
+</code></pre>
+ <p>EASE opens an own Eclipse console by default to show the output of the executed script when using right click and
+ <i>Run as -&gt; EASE Script</i>. Therefore if you are using Log4J for your logging, you can use the following provided methods to configure dedicated Log4J Loggers to use also the EASE console for output.
+ </p>
+ <p>The following overview gives an overview about the available helper methods:</p>
+ <table class="minimal">
+ <tr>
+ <th colspan="1" rowspan="1">Method</th>
+ <th colspan="1" rowspan="1">Params</th>
+ <th colspan="1" rowspan="1">Description</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">addLoggerToConsole</td>
+ <td colspan="1" rowspan="1">String loggerName</td>
+ <td colspan="1" rowspan="1">Adds a Log4J logger to the output of the current used output of the EASE script engine.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">addLoggerToConsole</td>
+ <td colspan="1" rowspan="1">String loggerName, String pattern</td>
+ <td colspan="1" rowspan="1">Adds a Log4J logger to the output of the current used output of the EASE script engine with a given pattern, see
+ <code>org.apache.log4j.PatternLayout</code> for more details
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">endWorkflow</td>
+ <td colspan="1" rowspan="1">-</td>
+ <td colspan="1" rowspan="1">Basic finish actions to be performed, should be called at the end</td>
+ </tr>
+ </table>
+
+
+<h3><a id="section4.3.6">4.3.6 </a>MWE2 Workflow</h3>
+ <p>The plugin
+ <i>org.eclipse.app4mc.amalthea.workflow.
+ <strong>mwe2</strong>
+ </i> provides a general class
+ <code>org.eclipse.app4mc.amalthea.workflow.base.AmaltheaWorkflow</code> which can be used to extend in the case to provide or implement an own workflow step based on
+ <a href="http://www.eclipse.org/Xtext/documentation/302_configuration.html">Modeling Workflow Engine 2 (MWE2)</a>.
+ <br>It provides the following features:
+ </p>
+ <ul>
+ <li>Extends
+ <code>org.eclipse.emf.mwe.core.lib.WorkflowComponentWithModelSlot</code>
+ </li>
+ <li>Defines the constant AMALTHEA_SLOT, which can be used to store and retrieve the AMALTHEA model from the
+ <code>org.eclipse.emf.mwe.core.WorkflowContext</code>.
+ </li>
+ <li>Provides some convenient methods to retrieve the model from the context, get a copy of the model or store the model in the context.</li>
+ </ul>
+ <p>
+ <img src="images/uml_workflow_component_mwe2.png"/>
+ </p>
+ <p>To use the AMALTHEA model workflow component, currently the following dependencies are needed in addition to the AMALTHEA model plugins:</p>
+ <ul>
+ <li>org.eclipse.app4mc.amalthea.workflow.mwe2</li>
+ <li>org.eclipse.emf.mwe2.lib</li>
+ <li>org.eclipse.emf.mwe2.launch</li>
+ <li>org.apache.log4j</li>
+ </ul>
+
+
+<h4><a id="section4.3.6.1"></a>MWE2 Components</h4>
+ <p>The APP4MC AMALTHEA platform ships with some available workflow steps for usage together with MWE2.
+ <br>Note: To use the components below as shown in the corresponding configurations, the classes must be imported!
+ </p>
+
+
+<h5><a id="section4.3.6.1.1"></a>Reader</h5>
+ <p>The component
+ <code>org.eclipse.app4mc.amalthea.workflow.mwe2.util.AmaltheaReader</code> reads a given list of files containing AMALTHEA models. The result model is stored in the
+ <i>AMALTHEA_SLOT</i> as default.
+ </p>
+ <p>
+ <img src="images/uml_model_reader_mwe2.png"/>
+ </p>
+ <p>Sample configuration inside of a workflow:</p>
+ <pre xml:space="preserve"><code>component = AmaltheaReader {
+ fileName = "${base}/model/AMALTHEA_Democar_MappingExample.amxmi"
+ fileName = "${base}/model/AMALTHEA_Democar_MappingExample-hw.amxmi"
+}
+</code></pre>
+
+
+<h5><a id="section4.3.6.1.2"></a>Writer</h5>
+ <p>The component
+ <code>org.eclipse.app4mc.amalthea.workflow.mwe2.util.AmaltheaWriter</code> writes a given AMALTHEA model to either one file or several files. As default the current available model in the
+ <i>AMALTHEA_SLOT</i> is taken.
+ <br>The following parameters are available to set:
+ </p>
+ <ul>
+ <li>boolean singleFile default true</li>
+ <li>String outputDir</li>
+ <li>String fileName, if output is set to split files the different models are separated by an additional suffix in the name indicating the contained model.</li>
+ </ul>
+ <p>
+ <img src="images/uml_model_writer_mwe2.png"/>
+ </p>
+ <p>Sample configuration inside of a workflow:</p>
+ <pre xml:space="preserve"><code>component = AmaltheaWriter {
+ fileName = "createtasks"
+ singleFile = true
+ outputDir = "${base}/workflow-output"
+}
+</code></pre>
+
+
+<h5><a id="section4.3.6.1.3"></a>Add Schedule Points</h5>
+ <p>The component
+ <code>org.eclipse.app4mc.amalthea.workflow.mwe2.util.AddSchedulePoints</code> modifies a given model (default in the AMALTHEA_SLOT) in that way, that in the
+ <code>org.eclipse.app4mc.amalthea.model.SWModel</code> the contained
+ <code>org.eclipse.app4mc.amalthea.model.Task</code> elements are checked if the preemption is set to cooperative. If this is the case, it will add between the elements of the
+ <code>org.eclipse.app4mc.amalthea.model.CallGraph</code> new elements of type
+ <code>org.eclipse.app4mc.amalthea.model.SchedulePoint</code>.
+ </p>
+ <p>
+ <img src="images/uml_add_schedule_points_mwe2.png"/>
+ </p>
+ <p>Sample configuration inside of a workflow:</p>
+ <pre xml:space="preserve"><code>component = AddSchedulePoints {
+}
+</code></pre>
+
+
+<h3><a id="section4.3.7">4.3.7 </a>Current Limitations / Open Points</h3>
+ <p>As there are two options available (Basic Java/EASE and MWE2 based) for running a workflow, there are currently also some limitations existent. The following table should help you to chose the right base:</p>
+ <table class="classic">
+ <tr>
+ <th colspan="1" rowspan="1">Use Case</th>
+ <th colspan="1" rowspan="1">Supported in MWE2</th>
+ <th colspan="1" rowspan="1">Supported in EASE</th>
+ <th colspan="1" rowspan="1">Reason</th>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Loading of AMALTHEA model files (with cross document references) using workflow/script file</td>
+ <td colspan="1" rowspan="1" style="text-align:center;color:red">
+ <strong>no</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align:center;color:green">
+ <strong>yes</strong>
+ </td>
+ <td colspan="1" rowspan="1"><ul><li>
+ <strong>MWE2</strong>: Separate Java runtime is started by MWE2, Sphinx relies in running Eclipse instance </li><li>
+ <strong>EASE</strong>: Makes use of the runtime from runtime workbench</li></ul>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Using workflow components which are available in the runtime (i.e. workflow component classes which are already available in plugins as a part of the runtime product)</td>
+ <td colspan="1" rowspan="1" style="text-align:center;color:green">
+ <strong>yes</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align:center;color:green">
+ <strong>yes</strong>
+ </td>
+ <td colspan="1" rowspan="1"><ul><li>
+ <strong>MWE2</strong>: Separate runtime is started by MWE2 and if plugin (containing workflow component) is added as dependency then its classes are loaded </li><li>
+ <strong>EASE</strong>: Makes use of the runtime from runtime workbench and has access to all classes </li></ul>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Defining custom workflow components (Java classes) and using them in the workflow/script file located in the same workspace</td>
+ <td colspan="1" rowspan="1" style="text-align:center;color:green">
+ <strong>yes</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align:center;color:green">
+ <strong>yes</strong>
+ </td>
+ <td colspan="1" rowspan="1"><ul><li>
+ <strong>MWE2</strong>: Custom workflow component objects can be directly created in MWE2 script file(as in Java) and there is no restriction [irrespective of whether there is constructor] </li><li>
+ <strong>EASE</strong>: As the runtime from the launched workbench (runtime workbench) is used, custom Java classes available in the workspace are not part of the classpath. For creation of objects of custom workflow components (Java classes): EASE JVM module
+ <code>createInstance</code> API should be used by specifying the absolute path of the Java class </li></ul>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Using Java classes (available in the runtime workspace from other plugins --&gt; these classes are not part of runtime workbench) inside custom workflow component Java classes</td>
+ <td colspan="1" rowspan="1" style="text-align:center;color:green">
+ <strong>yes</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align:center;color:green">
+ <strong>yes</strong>
+ </td>
+ <td colspan="1" rowspan="1"><ul><li>
+ <strong>MWE2</strong>: works perfectly (just like native) </li><li>
+ <strong>EASE</strong>: works, for creation of object from custom Java classes, EASE JVM module is used, which compiles the used Java classes and creates objects of them </li></ul>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Using classes (API) from 3rd party libraries (added in the classpath of the plugin)inside custom workflow component java classes</td>
+ <td colspan="1" rowspan="1" style="text-align:center;color:green">
+ <strong>yes</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align:center;color:green">
+ <b>yes(*)</b>
+ </td>
+ <td colspan="1" rowspan="1"><ul><li>
+ <strong>MWE2</strong>: As new Java runtime is created, all the required plugins &amp; jars are added in the classpath </li><li>
+ <strong>EASE</strong>: The runtime from workbench and the jars from the classpath of a plugin (created newly in the runtime workbench) are loaded by EASE. </li></ul>
+ </td>
+ </tr>
+ </table>
+ <p>*: This feature is only available for EASE versions newer than 0.3.0. Older versions will fail with an exception java.lang.NoClassDefFoundError: &lt;your used class from 3rd party lib&gt;</p>
+ <p>Sample for using EASE JVM module to load a class from the same workspace:</p>
+ <pre xml:space="preserve"><code>var labelsCreationComponent = createInstance("workspace://com.ease.example/src/org/eclipse/app4mc/amalthea/example/workflow/components/CreateLabelsComponent.java")
+</code></pre>
+
+
+<h3><a id="section4.3.8">4.3.8 </a>Overall Sample</h3>
+ <p>A sample workflow is available in the AMALTHEA example projects inside of
+ <code>org.eclipse.app4mc.amalthea.example.democar.mapping/workflow/sample_workflow.js</code>. In general this workflow contains all steps as shown in the AMALTHEA examples tutorial
+ <a href="#example-task-creation">Task creation</a> and
+ <a href="#example-mapping-1">Mapping example</a>, but it can be executed in one script. Execute it by doing a right click and then
+ <i>Run As -&gt; EASE Script</i>.
+ <br>The following steps are performed in the sample configuration:
+ </p>
+ <ol>
+ <li>Read the files
+ <i>AMALTHEA_Democar_MappingExample.amxmi</i> and
+ <i>AMALTHEA_Democar_MappingExample-hw.amxmi</i> inside if the model folder. Result model is saved in the default
+ <code>AMALTHEA_SLOT</code>.
+ </li>
+ <li>Perform the
+ <a href="#component-create-tasks">Create Tasks</a> component
+ </li>
+ <li>Write the result model available in the
+ <i>createtasks</i> model slot to a single model file
+ <i>createtasks</i> in the directory
+ <i>workflow-output</i>.
+ </li>
+ <li>Perform the
+ <a href="#component-generate-mapping">Generate Mapping</a> component with the dfg algorithm on the result of the Create Tasks component. This is done by specifying
+ <code>modelSlot = "createtasks"</code>.
+ </li>
+ <li>Write the result model available in the
+ <i>mapping</i> model slot to a single model file
+ <i>mapping_dfg</i> in the directory
+ <i>workflow-output</i>.
+ </li>
+ <li>Perform the
+ <a href="#component-generate-mapping">Generate Mapping</a> component with the ilp algorithm on the result of the Create Tasks component. This is done by specifying
+ <code>modelSlot = "createtasks"</code>. In addition the result slot is overwritten by
+ <code>resultSlot = "mappingilp"</code>, as the previous run of Generate Mapping is already stored in the mapping slot.
+ </li>
+ <li>Write the result model available in the
+ <i>mapping_ilp</i> model slot to a single model file
+ <i>mapping_ilp</i> in the directory
+ <i>workflow-output</i>.
+ </li>
+ </ol>
+ <p>The following diagram shows a snippet of this workflow:</p>
+ <p>
+ <img src="images/sample_workflow.png"/>
+ </p>
+
+
+<h3><a id="section4.3.9">4.3.9 </a>Adding a new workflow component</h3>
+ <p>Below you will find a sample how to add and implement a new workflow component.</p>
+
+
+<h3><a id="section4.3.10">4.3.10 </a>Create project</h3>
+ <ol>
+ <li>Add a new plugin project with the name
+ <i>my.sample.workflow</i>
+ </li>
+ <li>Open the
+ <i>MANIFEST.MF</i> in the META-INF folder.
+ </li>
+ <li>Switch to the tab Dependencies to add the following plugin dependencies: org.eclipse.app4mc.amalthea.workflow.core</li>
+ <li>Add a new class
+ <code>my.sample.workflow.HelloWorld</code>, which is extending
+ <code>org.eclipse.app4mc.amalthea.workflow.core.WorkflowComponent</code>.
+ </li>
+ <li>Implement something in the
+ <code>runInternal(Context ctx) throws WorkflowException</code> method (see sample below).
+ </li>
+ </ol>
+ <pre xml:space="preserve"><code>@Override
+protected void runInternal(Context ctx) throws WorkflowException {
+ // some checking if sw model is available
+ if (null == getAmaltheaModel(ctx).getSwModel()) {
+ throw new WorkflowException("No proper SWModel available!");
+ }
+ this.log.info("Number of tasks in model: " + getAmaltheaModel(ctx).getSwModel().getTasks().size());
+}
+</code></pre>
+ <p><!-- --></p>
+
+
+<h4><a id="section4.3.10.1"></a>Execute the new component in the available sample</h4>
+ <p>The previous created class
+ <code>my.sample.workflow.HelloWorld</code> should be added to a workflow.
+ <br>Therefore we are using the provided sample project from APP4MC
+ <i>org.eclipse.app4mc.amalthea.example.democar.mapping</i>.
+ <br>Before starting with the next steps, we need to start a new runtime from the existing workspace, so that the plugin
+ <i>my.sample.workflow</i> is already loaded.
+ </p>
+ <p>
+ <strong>Note:</strong> If you want to use the classes from the plugin
+ <i>my.sample.workflow</i> in a EASE script located in the same workspace, you can create an instance of it at runtime using the JVM module of EASE. Please consider the EASE documentation for more details.
+ </p>
+ <ol>
+ <li>Add the AMALTHEA democar samples to your workspace (File – New – Example – Democar Examples)</li>
+ <li>Go to the project
+ <i>org.eclipse.app4mc.amalthea.example.democar.mapping</i>.
+ </li>
+ <li>Open the
+ <i>sample_workflow.js</i> located in the workflow folder.
+ </li>
+ <li>Add to the imports:
+ <code>importPackage(my.sample.workflow)</code>
+ </li>
+ <li>Add to the logger configs:
+ <code>addLoggerToConsole("my.sample.workflow")</code>
+ </li>
+ <li>Add the First snippet below after the first AmaltheaReader component and before the CreateTasks component.</li>
+ <li>Run the script by doing a right click -&gt; Run As -&gt; EASE Script</li>
+ </ol>
+ <pre xml:space="preserve"><code>var ctx = new DefaultContext()
+
+//Reader
+var reader = new ModelReader()
+reader.addFileName(MODEL_LOCATION1)
+reader.addFileName(MODEL_LOCATION2)
+reader.run(ctx)
+
+var hw = new HelloWorld()
+hw.run(ctx)
+
+//create tasks based on initial model
+//result is saved in modelslot createtasks
+var createTasks = new CreateTasks()
+createTasks.run(ctx)
+</code></pre>
+ <p><!-- --></p>
+
+
+<h2><a id="section4.4">4.4 </a>Model Migration</h2>
+
+
+<h3><a id="section4.4.1">4.4.1 </a>Technologies used</h3>
+ <p>For migration of AMALTHEA models, plane java approach has been used (
+ <em>non EMF</em>) along with the following 3rd party libraries :
+ </p>
+ <ul>
+ <li>JDOM 2</li>
+ <li>JAXEN</li>
+ <li>XALAN</li>
+ <li>XERCES</li>
+ </ul>
+
+
+<h3><a id="section4.4.2">4.4.2 </a>Framework for model migration</h3>
+ <p>Using the above specified technologies, eclipse plugin based framework for model migration is developed.</p>
+ <ul>
+ <li>
+ <em>
+ <strong>org.eclipse.app4mc.amalthea.converters.common</strong>
+ </em> plugin consists of
+ <em>Model migration framework</em>
+ </li>
+ </ul>
+
+
+<h3><a id="section4.4.3">4.4.3 </a>Components of Model Migration Framework</h3>
+ <ul>
+ <li>Converters</li>
+ <li>Cache Builders</li>
+ <li>Pre Processor</li>
+ <li>Post Processor</li>
+ </ul>
+ <p>All the above specified components are contributed as extension points in the plugin
+ <em>
+ <strong>org.eclipse.app4mc.amalthea.converters.common</strong>
+ </em>
+ </p>
+ <p>Detailed description of each component can be found below:</p>
+ <p>
+ <strong>Converters:</strong> This component is responsible for converting the model (xmi) content from one version to another. A Converter component is executed for selected model files and the corresponding referred model files for migration (
+ <em>each execution is w.r.t. specific model file</em>).
+ </p>
+ <p>Converter can be registered by adding extension definition for :
+ <code>org.eclipse.app4mc.amalthea.model.converters</code> and defining the following parameters :
+ </p>
+ <ul>
+ <li>ID : This is the unique identifier of a Converters component with which it is identified</li>
+ <li>Name : Name of the component</li>
+ <li>Input model version : AMALTHEA model version in which the input model content is present. </li>
+ <li>Output model version : AMALTHEA model version to which the input model content should be converted to.</li>
+ </ul>
+ <blockquote>
+ <p>First version of APP4MC was 0.7.0</p>
+ </blockquote>
+ <blockquote>
+ <p>From version 0.9.3 of APP4MC, there will not be any support for migration of AMALTHEA models based on ITEA releases (itea.103, itea.110, itea.111)</p>
+ </blockquote>
+ <ul>
+ <li>Converter Class : Java class implementing
+ <code>org.eclipse.app4mc.amalthea.converters.common.base.IConverter</code> interface and providing the definition for method :
+ <code>public void convert(final File targetFile, final Map&lt;File, Document&gt; fileName_documentsMap, final List&lt;ICache&gt; caches) throws Exception</code>
+ </li>
+ <li>enabled : By specifying true/false - &gt; specific converter invocation can be enabled or disabled</li>
+ </ul>
+ <p>
+ <img class="gray_scale" src="images/converters_content.png"/>
+ </p>
+ <ul>
+ <li>Converter dependencies : A Converter can be dependent on other Converter components. During the execution of a specific Converter component first its dependencies are invoked and then dependent converter is invoked.</li>
+ </ul>
+ <p>Converter dependencies can be specified at the extension level in the following way:</p>
+ <p>
+ <img class="gray_scale" src="images/converters_dependencies.png"/>
+ <br>
+ <img class="gray_scale" src="images/converters_dependencies_details.png"/>
+ </p>
+ <p>
+ <strong>Cache Builders:</strong> This component is responsible for building the required cache, by querying the input models or storing the necessary information - &gt; before executing the Converters for specific migration step (
+ <em>e.g. 0.9.0 to 0.9.1</em>)
+ <br>Scope of each Cache Builder component is only during a step of model migration (
+ <em>e.g. 0.9.0 to 0.9.1</em>)
+ </p>
+ <p>Cache Builder can be registered by adding extension definition for :
+ <code>org.eclipse.app4mc.amalthea.model.converters.cachebuilders</code> and defining the following parameters :
+ </p>
+ <ul>
+ <li>ID : This is the unique identifier of a Cache Builder component with which it is identified</li>
+ <li>name : Name of the component</li>
+ <li>class : Java class implementing
+ <code>org.eclipse.app4mc.amalthea.converters.common.base.ICache</code> interface and providing implementation for following methods :
+ <code>public void buildCache(final Map&lt;File, Document&gt; fileName_documentsMap)</code>,
+ <code>public Map&lt;File, Map&lt;String, Object&gt;&gt; getCacheMap()</code>,
+ <code>public void clearCacheMap()</code>
+ </li>
+ <li>enabled : By specifying true/false - &gt; specific Cache Builder components invocation can be enabled or disabled</li>
+ <li>input-model-version : AMALTHEA model version in which the model content is present.</li>
+ </ul>
+ <blockquote>
+ <p>Each Cache Builder component is tightly coupled to a specific AMALTHEA model version </p>
+ </blockquote>
+ <p>
+ <img class="gray_scale" src="images/cache_builder.png"/>
+ </p>
+ <p>
+ <strong>Pre Processor:</strong> This component is responsible for fetching/modifying specific information before invocation of Cache Builders/Converters components.
+ </p>
+ <blockquote>
+ <p>This component is tightly coupled to input version of the AMALTHEA model files which are selected (explicitly/implicitly) for model migration. Each Pre-Processor component is executed only once for the input model files, irrespective of number of migration steps.</p>
+ </blockquote>
+ <p>Pre Processor component can be registered by adding extension definition for :
+ <code>org.eclipse.app4mc.amalthea.model.converters.preprocessor</code> and defining the following parameters :
+ </p>
+ <ul>
+ <li>ID : This is the unique identifier of a Pre-Processor component with which it is identified</li>
+ <li>class : Java class implementing
+ <code>org.eclipse.app4mc.amalthea.converters.common.base.IPreProcessor</code> interface and providing implementation for method :
+ <code>public void process(final File targetFile, final Map&lt;File, Document&gt; fileName_documentsMap) throws Exception</code>
+ </li>
+ <li>input-model-version : AMALTHEA model version in which the model content can be present. There is a possibility to specify multiple input-model-version's, during the runtime if the supplied AMALTHEA models version matches to at least one of the specified versions - &gt; then corresponding pre-processor is executed</li>
+ </ul>
+ <blockquote>
+ <p>Each Pre processor component is tightly coupled to the specified AMALTHEA model versions</p>
+ </blockquote>
+ <p>
+ <img class="gray_scale" src="images/pre_processor.png"/>
+ </p>
+ <p>
+ <strong>Post Processor:</strong> This component is responsible for adding/modifying specific information after invocation of Cache Builders/Converters components for a specific migration step (
+ <em>e.g. 0.9.0 to 0.9.1</em>)
+ </p>
+ <blockquote>
+ <p>This component is tightly coupled to input and output version of the AMALTHEA model files which are selected (explicitly/implicitly) for model migration. Each Pre-Processor component is executed after the migration step if the below criteria is full filled:</p>
+ </blockquote>
+ <p>Post Processor component can be registered by adding extension definition for :
+ <code>org.eclipse.app4mc.amalthea.model.converters.postprocessor</code> and defining the following parameters :
+ </p>
+ <ul>
+ <li>ID : This is the unique identifier of a Post-Processor component with which it is identified</li>
+ <li>class : Java class implementing
+ <code>org.eclipse.app4mc.amalthea.converters.common.base.IPostProcessor</code> interface and providing implementation for method :
+ <code>public void process(final Map&lt;File, Document&gt; fileName_documentsMap, final AbstractHelper helper) throws Exception</code>
+ </li>
+ <li>input-model-version : AMALTHEA model version in which the model content can be present. There is a possibility to specify multiple input-model-version's.</li>
+ <li>output-model-version : AMALTHEA model version to which the model content is converted as a part of one of the migration step. There is a possibility to specify multiple output-model-version's.</li>
+ </ul>
+ <p>
+ <img class="gray_scale" src="images/post_processor.png"/>
+ </p>
+ <p>
+ <em>Example how Post-Processor's are invoked:</em>
+ </p>If Post-Processor is defined with input-model-versions :0.9.0, 0.9.1 and output version 0.9.2.In case if the migration is invoked from 0.9.0 to 0.9.2 for the specified AMALTHEA models.Following migration steps are to be performed internally:
+ <ul>
+ <li>0.9.0 to 0.9.1</li>
+ <li>0.9.1 to 0.9.2</li>
+ </ul>
+ <blockquote>
+ <p>In this case post-processor is invoked after migration step 0.9.1 to 0.9.2 </p>
+ </blockquote>
+ <p>Flexibility of post-processors is, they are defined in a generalized way to specify in the direction which they should be invoked as a part of model migration.</p>
+
+
+<h4><a id="section4.4.3.1"></a>Model migration sequence</h4>
+ <p>Sequence in which various components are invoked during model migration</p>
+ <p>
+ <img class="gray_scale" src="images/model_migration_sequence_diagram.png"/>
+ </p>
+
+
+<h3><a id="section4.4.4">4.4.4 </a>How to add custom Model Migration components</h3>
+ <p>As described above, Model Migration framework is part of
+ <em>
+ <strong>org.eclipse.app4mc.amalthea.converters.common</strong>
+ </em> plugin. This plugin should be added as a dependency to the custom plugin which shall contain Model Migration components.
+ </p>
+ <p>Below are the various extension points available as a part of Model Migration framework: </p>
+ <p>
+ <img class="gray_scale" src="images/converters_extension_points.png"/>
+ </p>
+ <p>For defining custom Model Migration, minimum requirement is to define a extension for
+ <code>org.eclipse.app4mc.amalthea.model.converters</code> extension point and specify the class which has the implementation for migrating the model contents.
+ </p>
+ <p>CacheBuilders, PreProcessor, PostProcessor components are optional - &gt; based on the scenarios to migrate the model elements, it must me decided if these components are required.</p>
+
+
+<h3 id="meta-model-changes"><a id="section4.4.5">4.4.5 </a>AMALTHEA meta model changes</h3>
+ <p>Based on the changes in AMALTHEA meta model across various releases, below description contains the differences in detail which are considered for model migration:</p>
+
+
+<h4><a id="section4.4.5.1"></a>Version APP4MC 0.7.0 to App4MC 0.7.1</h4>
+ <p>Below are the changes in the meta model from APP4MC 0.7.0 to APP4MC 0.7.1</p>
+ <p>
+ <strong>Change in the namespace:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA Namespace (version App4MC 0.7.0)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA Namespace (version App4MC 0.7.1)</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">http://app4mc.eclipse.org/amalthea/0.7.0</td>
+ <td colspan="1" rowspan="1">http://app4mc.eclipse.org/amalthea/0.7.1</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Root Tag in AMALTHEA model amxmi file</strong>: It is recommended to have "Amalthea" as a root tag in amxmi file.
+ </p>
+ <p>Based on the above statement, if the AMALTHEA model file is having sub-model tag as root element (e.g. SWModel or HWModel etc.,), as a part of model migration -&gt; root element is changed as "Amalthea" tag and the content of sub-model is copied inside it. </p>Input model (containing SWModel as the root tag):
+ <pre xml:space="preserve"><code> "&lt;am:SWModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.7.0"&gt;
+ &lt;labels/&gt;
+&lt;/am:SWModel&gt;"
+</code></pre> Output model (after model migration):
+ <pre xml:space="preserve"><code>&lt;am:Amalthea xmlns:am="http://app4mc.eclipse.org/amalthea/0.7.0" xmlns:xmi="http://www.omg.org/XMI"&gt;
+ &lt;swModel&gt;
+ &lt;labels /&gt;
+ &lt;/swModel&gt;
+&lt;/am:Amalthea&gt;
+</code></pre>
+ <p>
+ <strong>Below are the changes in the reference names:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Name (version APP4MC 0.7.0)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Changed Variable Name (version APP4MC 0.7.1)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class containing Variable</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">graphEntries</td>
+ <td colspan="1" rowspan="1">items</td>
+ <td colspan="1" rowspan="1">ModeSwitchEntry</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">xml tag "graphEntries" present inside "ModeSwitchEntry" object is changed to "items" in amxmi file</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">value</td>
+ <td colspan="1" rowspan="1">values</td>
+ <td colspan="1" rowspan="1">ModeSwitchEntry</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">xml tag "value" present inside "ModeSwitchEntry" object is changed to "values" in amxmi file</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below are the changes in the reference Types:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Name</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Type (version APP4MC 0.7.0)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Type (version APP4MC 0.7.1)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class containing Variable</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">size</td>
+ <td colspan="1" rowspan="1">Long</td>
+ <td colspan="1" rowspan="1">DataSize</td>
+ <td colspan="1" rowspan="1">MemoryType</td>
+ <td colspan="1" rowspan="1">HW Model, PropertyConstraintsModel</td>
+ <td colspan="1" rowspan="1">Attribute "size" is migrated as "DataSize" object. Long value of "size" is migrated to "value" of DataSize. As the DataSizeUnit info is not available, "unit" value is not set</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">size</td>
+ <td colspan="1" rowspan="1">DataUnit</td>
+ <td colspan="1" rowspan="1">DataSize</td>
+ <td colspan="1" rowspan="1">AbstractElementMemoryInformation</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">"size" of type "DataUnit" is migrated as "DataSize" object. Int value of "numberBits" attribute is migrated to "value" of DataSize, "unit" attribute is set as "bit" of type DataSizeUnit</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">size</td>
+ <td colspan="1" rowspan="1">DataUnit</td>
+ <td colspan="1" rowspan="1">DataSize</td>
+ <td colspan="1" rowspan="1">BaseTypeDefinition</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">"size" of type "DataUnit" is migrated as "DataSize" object. Int value of "numberBit" attribute is migrated to "value" of DataSize, "unit" attribute is set as "bit" of type DataSizeUnit</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">frequency</td>
+ <td colspan="1" rowspan="1">EInt</td>
+ <td colspan="1" rowspan="1">Frequency</td>
+ <td colspan="1" rowspan="1">Quartz</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">Attribute "frequency" of type EInt is migrated as "Frequency" object. "frequency" EInt value is migrated to "value" EDouble of DataSize. As the FrequencyUnit info is not available, "unit" value is not set</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below references are removed:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Name</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Type</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class containing Variable</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">size</td>
+ <td colspan="1" rowspan="1">DataUnit</td>
+ <td colspan="1" rowspan="1">Section</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">Content is removed from the model as size can't be specified for "Section" (considered as virtual memory section)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">labels</td>
+ <td colspan="1" rowspan="1">[0-*] Label</td>
+ <td colspan="1" rowspan="1">Section</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">Content is removed from the model. As per APP4MC 0.7.1 semantics, Label object has the association to the Section inside which it can be allocated</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">runEntities</td>
+ <td colspan="1" rowspan="1">[0-*] Runnable</td>
+ <td colspan="1" rowspan="1">Section</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">Content is removed from the model. As per APP4MC 0.7.1 semantics, Runnable object has the association to the Section inside which it can be allocated</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">groupingType</td>
+ <td colspan="1" rowspan="1">RunnableGroupingType</td>
+ <td colspan="1" rowspan="1">ProcessRunnableGroup</td>
+ <td colspan="1" rowspan="1">Constraints Model</td>
+ <td colspan="1" rowspan="1">Content is removed from the model</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">entries</td>
+ <td colspan="1" rowspan="1">[0-*] ProcessRunnableGroupEntry</td>
+ <td colspan="1" rowspan="1">ProcessRunnableGroup</td>
+ <td colspan="1" rowspan="1">Constraints Model</td>
+ <td colspan="1" rowspan="1">Content is removed from the model. Runnable object belonging to the ProcessRunnableGroupEntry is associated to the runnables list contained at the ProcessRunnableGroup object</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">default</td>
+ <td colspan="1" rowspan="1">EBoolean</td>
+ <td colspan="1" rowspan="1">ModeSwitchEntry</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">Content removed from the model. If several ModeSwitchEntry objects contain attribute "default" as "true", then first ModeSwitchEntry which has "default" as "true" is converted to "ModeSwitchDefault" object</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below Classes are removed:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class Name</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">SchedulerPairingConstraint</td>
+ <td colspan="1" rowspan="1">Constraints Model</td>
+ <td colspan="1" rowspan="1">Content is removed from the model. There is no equivalent of this model element in APP4MC 0.7.1</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">SchedulerSeparationConstraint</td>
+ <td colspan="1" rowspan="1">Constraints Model</td>
+ <td colspan="1" rowspan="1">Content is removed from the model. There is no equivalent of this model element in APP4MC 0.7.1</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">ProcessRunnableGroupEntry</td>
+ <td colspan="1" rowspan="1">Constraints Model</td>
+ <td colspan="1" rowspan="1">This element is removed from the model, but the Runnables associated to it are associated to ProcessRunnableGroup object</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">OrderConstraint</td>
+ <td colspan="1" rowspan="1">Constraints Model</td>
+ <td colspan="1" rowspan="1">Content is removed from the model. There is no equivalent of this model element in APP4MC 0.7.1</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">AgeConstraint</td>
+ <td colspan="1" rowspan="1">Constraints model</td>
+ <td colspan="1" rowspan="1">Content is migrated as EventChainLatencyConstraint element with LatencyType as "Age"</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">ReactionConstraint</td>
+ <td colspan="1" rowspan="1">Constraints model</td>
+ <td colspan="1" rowspan="1">Content is migrated as EventChainLatencyConstraint element with LatencyType as "Reaction"</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">SynchronisationConstraint</td>
+ <td colspan="1" rowspan="1">Constraints model</td>
+ <td colspan="1" rowspan="1">Content is migrated as EventSynchronizationConstraint element</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">SectionMapping</td>
+ <td colspan="1" rowspan="1">Mapping Model</td>
+ <td colspan="1" rowspan="1">Content is removed from the model. As per 0.7.1, there is a possibility to specify PhysicalSectionMapping element i.e. defining mapping of various Section elements to Memory</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">SectionMappingConstraint</td>
+ <td colspan="1" rowspan="1">Property Constraints Model</td>
+ <td colspan="1" rowspan="1">Content is removed from the model.As per 0.7.1, there is a possibility to specify PhysicalSectionConstraint element i.e. defining possibility of Section allocation across various Memories</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">DataUnit</td>
+ <td colspan="1" rowspan="1">Sw model</td>
+ <td colspan="1" rowspan="1">Content is migrated as DataSize. Attribute "unit" is set as DataSizeUnit of type "bit"</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section4.4.5.2"></a>Version APP4MC 0.7.1 to APP4MC 0.7.2</h4>
+ <p>
+ <strong>Change in the namespace:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA Namespace (version App4MC 0.7.1)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA Namespace (version App4MC 0.7.2)</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">http://app4mc.eclipse.org/amalthea/0.7.1</td>
+ <td colspan="1" rowspan="1">http://app4mc.eclipse.org/amalthea/0.7.2</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below are the changes in the reference names:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Name (version APP4MC 0.7.1)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Changed Variable Name (version APP4MC 0.7.2)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class containing Variable</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">runnables</td>
+ <td colspan="1" rowspan="1">group</td>
+ <td colspan="1" rowspan="1">RunnablePairingConstraint</td>
+ <td colspan="1" rowspan="1">Constraints Model</td>
+ <td colspan="1" rowspan="1">xml tag "runnables" present inside "RunnablePairingConstraint" object is changed to "group" in amxmi file</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">processes</td>
+ <td colspan="1" rowspan="1">group</td>
+ <td colspan="1" rowspan="1">ProcessPairingConstraint</td>
+ <td colspan="1" rowspan="1">Constraints Model</td>
+ <td colspan="1" rowspan="1">xml tag "processes" present inside "ProcessPairingConstraint" object is changed to "group" in amxmi file</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">labels</td>
+ <td colspan="1" rowspan="1">group</td>
+ <td colspan="1" rowspan="1">DataPairingConstraint</td>
+ <td colspan="1" rowspan="1">Constraints Model</td>
+ <td colspan="1" rowspan="1">xml tag "labels" present inside "DataPairingConstraint" object is changed to "group" in amxmi file</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">initalValue</td>
+ <td colspan="1" rowspan="1">initialValue</td>
+ <td colspan="1" rowspan="1">Semaphore</td>
+ <td colspan="1" rowspan="1">OS Model</td>
+ <td colspan="1" rowspan="1">xml attribute "initalValue" present inside "Semaphore" object is changed to "initialValue" in amxmi file</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">arrivalCurveEntries</td>
+ <td colspan="1" rowspan="1">entries</td>
+ <td colspan="1" rowspan="1">ArrivalCurve</td>
+ <td colspan="1" rowspan="1">Stimuli Model</td>
+ <td colspan="1" rowspan="1">xml tag "arrivalCurveEntries" present inside "ArrivalCurve" object is changed to "entries" in amxmi file</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below are the changes in the reference Types:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Name</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Type (version APP4MC 0.7.1)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Type (version APP4MC 0.7.2)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class containing Variable</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">instructions</td>
+ <td colspan="1" rowspan="1">OsExecutionInstructions</td>
+ <td colspan="1" rowspan="1">Instructions</td>
+ <td colspan="1" rowspan="1">SchedulingSWUnit</td>
+ <td colspan="1" rowspan="1">OS Model</td>
+ <td colspan="1" rowspan="1">type of the instructions tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">apiSendMessage</td>
+ <td colspan="1" rowspan="1">OsExecutionInstructions</td>
+ <td colspan="1" rowspan="1">Instructions</td>
+ <td colspan="1" rowspan="1">OsAPIInstructions</td>
+ <td colspan="1" rowspan="1">OS Model</td>
+ <td colspan="1" rowspan="1">type of the apiSendMessage tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">apiTerminateTask</td>
+ <td colspan="1" rowspan="1">OsExecutionInstructions</td>
+ <td colspan="1" rowspan="1">Instructions</td>
+ <td colspan="1" rowspan="1">OsAPIInstructions</td>
+ <td colspan="1" rowspan="1">OS Model</td>
+ <td colspan="1" rowspan="1">type of the apiTerminateTask tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">apiSchedule</td>
+ <td colspan="1" rowspan="1">OsExecutionInstructions</td>
+ <td colspan="1" rowspan="1">Instructions</td>
+ <td colspan="1" rowspan="1">OsAPIInstructions</td>
+ <td colspan="1" rowspan="1">OS Model</td>
+ <td colspan="1" rowspan="1">type of the apiSchedule tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">apiRequestResource</td>
+ <td colspan="1" rowspan="1">OsExecutionInstructions</td>
+ <td colspan="1" rowspan="1">Instructions</td>
+ <td colspan="1" rowspan="1">OsAPIInstructions</td>
+ <td colspan="1" rowspan="1">OS Model</td>
+ <td colspan="1" rowspan="1">type of the apiRequestResource tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">apiReleaseResource</td>
+ <td colspan="1" rowspan="1">OsExecutionInstructions</td>
+ <td colspan="1" rowspan="1">Instructions</td>
+ <td colspan="1" rowspan="1">OsAPIInstructions</td>
+ <td colspan="1" rowspan="1">OS Model</td>
+ <td colspan="1" rowspan="1">type of the apiReleaseResource tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">apiSetEvent</td>
+ <td colspan="1" rowspan="1">OsExecutionInstructions</td>
+ <td colspan="1" rowspan="1">Instructions</td>
+ <td colspan="1" rowspan="1">OsAPIInstructions</td>
+ <td colspan="1" rowspan="1">OS Model</td>
+ <td colspan="1" rowspan="1">type of the apiSetEvent tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">apiWaitEvent</td>
+ <td colspan="1" rowspan="1">OsExecutionInstructions</td>
+ <td colspan="1" rowspan="1">Instructions</td>
+ <td colspan="1" rowspan="1">OsAPIInstructions</td>
+ <td colspan="1" rowspan="1">OS Model</td>
+ <td colspan="1" rowspan="1">type of the apiWaitEvent tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">apiClearEvent</td>
+ <td colspan="1" rowspan="1">OsExecutionInstructions</td>
+ <td colspan="1" rowspan="1">Instructions</td>
+ <td colspan="1" rowspan="1">OsAPIInstructions</td>
+ <td colspan="1" rowspan="1">OS Model</td>
+ <td colspan="1" rowspan="1">type of the apiClearEvent tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">apiActivateTask</td>
+ <td colspan="1" rowspan="1">OsExecutionInstructions</td>
+ <td colspan="1" rowspan="1">Instructions</td>
+ <td colspan="1" rowspan="1">OsAPIInstructions</td>
+ <td colspan="1" rowspan="1">OS Model</td>
+ <td colspan="1" rowspan="1">type of the apiActivateTask tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">apiEnforcedMigration</td>
+ <td colspan="1" rowspan="1">OsExecutionInstructions</td>
+ <td colspan="1" rowspan="1">Instructions</td>
+ <td colspan="1" rowspan="1">OsAPIInstructions</td>
+ <td colspan="1" rowspan="1">OS Model</td>
+ <td colspan="1" rowspan="1">type of the apiEnforcedMigration tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below are the changes in the relation of elements:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Name</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Type</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Relation (version APP4MC 0.7.1)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Relation (version APP4MC 0.7.2)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class containing Variable</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">memory</td>
+ <td colspan="1" rowspan="1">Memory</td>
+ <td colspan="1" rowspan="1">containment</td>
+ <td colspan="1" rowspan="1">association</td>
+ <td colspan="1" rowspan="1">HwMemoryProperty</td>
+ <td colspan="1" rowspan="1">PropertyConstraints model</td>
+ <td colspan="1" rowspan="1">memory objects containment is changed as association relation. As a result definition of Memory object should not be present inside HwMemoryProperty, rather only reference of memory should be present inside HwMemoryProperty. Model migration is performed in the following way for this change : Memory elements definition from HwMemoryProperty tag are moved to HW Model (Note: addition of Memory (from PropertyConstraints model) to HW model happens only if Memory with this name is not existing in the model scope)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">core</td>
+ <td colspan="1" rowspan="1">Core</td>
+ <td colspan="1" rowspan="1">containment</td>
+ <td colspan="1" rowspan="1">association</td>
+ <td colspan="1" rowspan="1">HwCoreProperty</td>
+ <td colspan="1" rowspan="1">PropertyConstraints model</td>
+ <td colspan="1" rowspan="1">core objects containment is changed as association relation. As a result definition of Core object should not be present inside HWCoreProperty, rather only reference of core should be present inside HWCoreProperty. Model migration is performed in the following way for this change : Core elements definition from HwCoreProperty tag are moved to HW Model (Note: addition of Memory (from PropertyConstraints model) to HW model happens only if Memory with this name is not existing in the model scope)</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below are the changes in Enum elements:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Enum Name</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Enum Literal (version APP4MC 0.7.1)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Enum Literal (version APP4MC 0.7.2)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Preemption</td>
+ <td colspan="1" rowspan="1">unknown</td>
+ <td colspan="1" rowspan="1">-</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">unknown literal is removed from Preemption. Model Migration will replace "unknown" literal with the default literal</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below references are removed:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Name (version APP4MC 0.7.1)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Type</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class containing Variable</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">samplingType</td>
+ <td colspan="1" rowspan="1">SamplingType</td>
+ <td colspan="1" rowspan="1">Deviation</td>
+ <td colspan="1" rowspan="1">Hardware Model Stimuli MOdel OS Model Software Model</td>
+ <td colspan="1" rowspan="1">In 0.7.2, samplingType attribute is shifted from Deviation to Boundaries element.As a part of Model migration -&gt; samplingType content is removed from Deviation and associated to the corresponding Distribution of type Boundaries. If Boundaries element is not present inside Deviation as a distribution, corresponding samplingType data is skipped during model migration</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">coreTypeDefinitions</td>
+ <td colspan="1" rowspan="1">CoreType</td>
+ <td colspan="1" rowspan="1">PropertyConstraintsModel</td>
+ <td colspan="1" rowspan="1">Property Constraints Model</td>
+ <td colspan="1" rowspan="1">coreTypeDefinitions objects are removed from the PropertyConstraintsModel tag and are associated to HW Model (Note: addition of CoreType to HW model happens only if CoreType with this name is not existing in the model scope. If there exists CoreType element with the same name in "PropertyConstraintsModel" and in "HW Model" --&gt; the one from PropertyConstraintsModel will be removed and the one from HW Model will be referred accordingly inside Core element etc.,)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">memoryTypeDefinitions</td>
+ <td colspan="1" rowspan="1">MemoryType</td>
+ <td colspan="1" rowspan="1">PropertyConstraintsModel</td>
+ <td colspan="1" rowspan="1">Property Constraints Model</td>
+ <td colspan="1" rowspan="1">memoryTypeDefinitions objects are removed from the PropertyConstraintsModel tag and are associated to HW Model (Note: addition of MemoryType to HW model happens only if MemoryType with this name is not existing in the model scope . If there exists MemoryType element with the same name in "PropertyConstraintsModel" and in "HW Model" --&gt; the one from PropertyConstraintsModel will be removed and the one from HW Model will be referred accordingly inside MemoryElement element etc.,)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">tags</td>
+ <td colspan="1" rowspan="1">Tag</td>
+ <td colspan="1" rowspan="1">ComponentsModel, HWModel, SWModel</td>
+ <td colspan="1" rowspan="1">Components Model, Hardware Model, Software Model</td>
+ <td colspan="1" rowspan="1">Tag objects are removed from the ComponentsModel,HWModel,SWModel tags and their content is shifted to CommonElements Model (Note: CommonElements model is contained inside Amalthea root node)</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below Classes are removed:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class Name (version APP4MC 0.7.1)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">TargetProcess</td>
+ <td colspan="1" rowspan="1">Constraints Model</td>
+ <td colspan="1" rowspan="1">Content is removed from the model. There is no equivalent of this model element in APP4MC 0.7.2</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">TargetCallSequence</td>
+ <td colspan="1" rowspan="1">Constraints Model</td>
+ <td colspan="1" rowspan="1">Content is removed from the model. There is no equivalent of this model element in APP4MC 0.7.2</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">OsExecutionInstructions, OsExecutionInstructionsDeviation, OsExecutionInstructionsConstant</td>
+ <td colspan="1" rowspan="1">OS Model</td>
+ <td colspan="1" rowspan="1">Replacement elements are : Instructions,InstructionsDeviation,InstructionsConstant. As there is no change in the content of these elements(when compared to previous elements) -&gt; during model migration corresponding old type names are replaced with the new model elements</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">ProbabilityGroup</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">ProbabilityGroup is replaced with RunnableProbabilitySwitch</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">ProbabilityRunnableItem</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">ProbabilityRunnableItem is replaced wtih ProbabilitySwitchEntry</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">DeviationRunnableItem</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">Content of DeviationRunnableItem i.e RunnableItem is moved directly inside the Group as a part of "items" list</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">EventConfigElement, EventConfigLink</td>
+ <td colspan="1" rowspan="1">Config Model</td>
+ <td colspan="1" rowspan="1">Both EventConfigElement and EventConfigLink objects are converted as EventConfig objects (As EventConfigElement &amp; EventConfigLink classes are removed from the MetaModel – as per the semantics equivalent class for both of them is EventConfig). In case of migrating EventConfigElement – If definition of EntityEvent element is present as a sub-element -&gt; it is moved to Events Model and the corresponding reference to EntityEvent is established inside EventConfig using attribute "event"</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">OsBuffering</td>
+ <td colspan="1" rowspan="1">OS Model</td>
+ <td colspan="1" rowspan="1">OsBuffering elements are migrated as OsDataConsistency elements. Below steps describe the criteria considered for migration of data :
+ <img class="gray_scale" src="images/osbuffering_migration_071_072.png"/>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">LabelBufferring</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">LabelBufferring elements are migrated as DataStability elements. Below steps describe the criteria considered for migration of data :<br> - If LabelBuffering value is "buffered" then the corresponding value of "dataStability" is set as "CustomProtection"<br> - If LabelBuffering value is "notBuffered" then the corresponding value of "dataStability" is set as "noProtection" <br>- If LabelBuffering value is "
+ <em>undefined</em>" (default) then the corresponding value of "dataStability" is set as "
+ <em>undefined</em>" (default)
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">LabelAccessBufferring</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">LabelAccessBufferring elements are migrated as DataStability elements. Below steps describe the criteria considered for migration of data :<br> - If LabelAccessBufferring value is "inherited" then the corresponding value of "dataStability" is set as "inherited"<br> - If LabelAccessBufferring value is "buffered" then the corresponding value of "dataStability" is set as "customProtection" <br> - If LabelAccessBufferring value is "notBuffered" then the corresponding value of "dataStability" is set as "noProtection" <br>- If LabelAccessBufferring value is "
+ <em>undefined</em>" (default) then the corresponding value of "dataStability" is set as "
+ <em>undefined</em>" (default)
+ </td>
+ </tr>
+ <tr/>
+ </table>
+
+
+<h4><a id="section4.4.5.3"></a>Version APP4MC 0.7.2 to APP4MC 0.8.0</h4>
+ <p>
+ <strong>Change in the namespace:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA Namespace (version App4MC 0.7.2)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA Namespace (version App4MC 0.8.0)</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">http://app4mc.eclipse.org/amalthea/0.7.2</td>
+ <td colspan="1" rowspan="1">http://app4mc.eclipse.org/amalthea/0.8.0</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below references are removed from storage format (amxmi):</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Name (version APP4MC 0.7.2)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Type</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class containing Variable</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">mode</td>
+ <td colspan="1" rowspan="1">Mode</td>
+ <td colspan="1" rowspan="1">ModeValueProvider</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">mode is made as a derived variable and transient property is set to it, as a result it will not be serialized into the model file. Based on the selection of ModeLiteral (in ModeValueProvider element) mode element will be considered accordingly.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">osDataConsistency</td>
+ <td colspan="1" rowspan="1">OsDataConsistency</td>
+ <td colspan="1" rowspan="1">OSModel</td>
+ <td colspan="1" rowspan="1">OS Model</td>
+ <td colspan="1" rowspan="1">OsDataConsistency element is shifted from OSModel to OperatingSystem element. As a part of migration, osDataConsistency element content is copied inside each OperatingSystem element</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below references names are changed :</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Name (version APP4MC 0.7.2)</em>
+ </strong>
+ </td>
+ <th colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Name (version APP4MC 0.8.0)</em>
+ </strong>
+ </th>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Type</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class containing Variable</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">mapping</td>
+ <td colspan="1" rowspan="1">memoryMapping</td>
+ <td colspan="1" rowspan="1">Mapping (in 0.7.2) -&gt; MemoryMapping (in 0.8.0)</td>
+ <td colspan="1" rowspan="1">MappingModel</td>
+ <td colspan="1" rowspan="1">Mapping model</td>
+ <td colspan="1" rowspan="1">As there is a change in the reference name (from mapping to memoryMapping) in metamodel --&gt; corresponding XML tag names in amxmi are changed from mapping to memoryMapping, type attribute is removed from memoryMapping XML tag as MemoryMapping is a concrete class</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below Classes/Interfaces are removed:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class Name (version APP4MC 0.7.2)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">ModeValueProvider (Interface)</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">Content present inside ModeValueProvider class is moved to ModeLabel. Reference to Mode element is made as derived variable, and it automatically populated based on the selection of ModeLiteral.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">SignedTimeObject</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">Equivalent of this element is TimeObject in APP4MC 0.8.0. There is no change in the storage format.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">SignedTime</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">Equivalent of this element is Time in APP4MC 0.8.0. There is no change in the storage format.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Mapping</td>
+ <td colspan="1" rowspan="1">Mapping Model</td>
+ <td colspan="1" rowspan="1">This interface is removed from the model. MemoryMapping is equivalent of this model element in APP4MC 0.8.0. As a part of model migration type attribute is removed from the tag which is defining MemoryMapping.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">AbstractElementMapping</td>
+ <td colspan="1" rowspan="1">Mapping Model</td>
+ <td colspan="1" rowspan="1">MemoryMapping is equivalent of this model element in APP4MC 0.8.0. As a part of model migration type attribute is removed from the tag which is defining MemoryMapping.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">AbstractElementMemoryInformation</td>
+ <td colspan="1" rowspan="1">HW Model</td>
+ <td colspan="1" rowspan="1">AbstractMemoryElement is the equivalent of this model element in APP4MC 0.8.0. There is no change in the storage format.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">ProbabiltitySwitch</td>
+ <td colspan="1" rowspan="1">HW Model</td>
+ <td colspan="1" rowspan="1">ProbabiltitySwitch class is changed to ProbabilitySwitch (typo corrected in the class name). ProbabilitySwitch is the equivalent of this model element in APP4MC 0.8.0</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">AllocationConstraint</td>
+ <td colspan="1" rowspan="1">PropertyConstraints Model</td>
+ <td colspan="1" rowspan="1">AllocationConstraint class is changed to CoreAllocationConstraint. In CoreAllocationConstraint -&gt; reference to HwCoreConstraint element is removed, based on this change -&gt; during model migration CustomProperty is created with key as "hwConstraint (element removed during Migration of Model to 0.8.0 version)" and value as the XML content of "hwConstraint" element.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">MappingConstraint</td>
+ <td colspan="1" rowspan="1">PropertyConstraints Model</td>
+ <td colspan="1" rowspan="1">MappingConstraint class is changed to MemoryMappingConstraint. In MemoryMappingConstraint -&gt; reference to HwMemmoryConstraint element is removed, based on this change -&gt; during model migration CustomProperty is created with key as "hwConstraint (element removed during Migration of Model to 0.8.0 version)" and value as the XML content of "hwConstraint" element.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">HwCoreConstraint, HwCoreConjunction, HwCoreProperty</td>
+ <td colspan="1" rowspan="1">PropertyConstraints Model</td>
+ <td colspan="1" rowspan="1">These elements are removed from the model. As a reference XML content is stored as a CustomProperty inside CoreAllocationConstraint</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">HwMemoryConstraint, HwMemoryConjunction, HwMemoryProperty</td>
+ <td colspan="1" rowspan="1">PropertyConstraints Model</td>
+ <td colspan="1" rowspan="1">These elements are removed from the model. As a reference XML content is stored as a CustomProperty inside MemoryMappingConstraint</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below are the changes in the datatype of elements:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Name</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable datatype (version APP4MC 0.7.2)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable datatype (version APP4MC 0.8.0)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class containing Variable</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">instructionsPerCycle</td>
+ <td colspan="1" rowspan="1">int</td>
+ <td colspan="1" rowspan="1">float</td>
+ <td colspan="1" rowspan="1">CoreType</td>
+ <td colspan="1" rowspan="1">HW model</td>
+ <td colspan="1" rowspan="1">int is converted to float</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section4.4.5.4"></a>Version APP4MC 0.8.0 to APP4MC 0.8.1</h4>
+ <p>
+ <strong>Change in the namespace:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA Namespace (version App4MC 0.8.0)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA Namespace (version App4MC 0.8.1)</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">http://app4mc.eclipse.org/amalthea/0.8.0</td>
+ <td colspan="1" rowspan="1">http://app4mc.eclipse.org/amalthea/0.8.1</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below Classes/Interfaces behaviour is changed:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class Name (version APP4MC 0.8.0)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Changes in behavior (as per 0.8.1)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">SubEventChain</td>
+ <td colspan="1" rowspan="1">Constraints Model</td>
+ <td colspan="1" rowspan="1">SubEventChain class (in 0.8.0) is replaced by EventChainContainer class (in 0.8.1). EventChainContainer class is modelled to contain SubEventChain elements (in 0.8.1) which are non referrable child EventChain elements.</td>
+ <td colspan="1" rowspan="1"><ul><li>In amxmi file, xsi:type with "am:SubEventChain" is replaced with "am:EventChainContainer".</li><li>If sub EventChain elements are referred inside EventChainReference or inside TimingConstraints
+ <i>(e.g: EventChainLatencyConstraint or EventChainSynchronizationConstraint)</i>:<ul><li> Then corresponding reference is removed and the reference String is stored in a CustomProperty of the corresponding element</li></ul></li></ul>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Quartz</td>
+ <td colspan="1" rowspan="1">Hardware Model</td>
+ <td colspan="1" rowspan="1">Quartz is not extending ComplexNode class. In addition below are the other changes w.r.t. Quartz: <ul><li>It is no longer possible to have nested Quartz elements</li><li>All Quartz elements should be present in single list, which is part of HwSystem class</li></ul></td>
+ <td colspan="1" rowspan="1"><ul><li>Per each amxmi file, from HWModel all Quartz elements are collected (
+ <i>both root and sub Quartz elements</i>) and are added in a central list which is part of HwSystem.</li><ul><li> Quartz element definitions are removed from the other HW elements
+ <i>(which are sub-classes of ComplexNode)</i> </li></ul></ul>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">ModeValueListEntry</td>
+ <td colspan="1" rowspan="1">Stimuli model</td>
+ <td colspan="1" rowspan="1">ModeValueListEntry class is having two sub-classes ModeValue and ModeValueConjunction</td>
+ <td colspan="1" rowspan="1">ModeValue type is associated to all the ModeValueListEntry elements</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below Classes are removed:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class Name (version APP4MC 0.8.0)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">CoreAllocation</td>
+ <td colspan="1" rowspan="1">Mapping Model</td>
+ <td colspan="1" rowspan="1">CoreAllocation is replaced by SchedulerAllocation. As a part of model migration, In Mapping model references of CoreAllocation are changed as SchedulerAllocation. Also the "core" attribute/tag of it is renamed to "responsibility"</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">SchedulingHWUnit</td>
+ <td colspan="1" rowspan="1">OS model</td>
+ <td colspan="1" rowspan="1">SchedulingHWUnit reference is removed from Scheduler</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">SchedulingSWUnit</td>
+ <td colspan="1" rowspan="1">OS model</td>
+ <td colspan="1" rowspan="1">SchedulingSWUnit reference is removed from Scheduler and content of Instructions is copied to the corresponding ComputationItem elements of type RunnableInstructions</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">ArrivalCurve</td>
+ <td colspan="1" rowspan="1">Stimuli model</td>
+ <td colspan="1" rowspan="1">This class is renamed to ArrivalCurveStimulus. Element type is updated at both defintion and references in amxmi file</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">InterProcess</td>
+ <td colspan="1" rowspan="1">Stimuli model</td>
+ <td colspan="1" rowspan="1">This class is renamed to InterProcessStimulus. Element type is updated at both defintion and references in amxmi file</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Periodic</td>
+ <td colspan="1" rowspan="1">Stimuli model</td>
+ <td colspan="1" rowspan="1">This class is renamed to PeriodicStimulus. Element type is updated at both defintion and references in amxmi file</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">PeriodicEvent</td>
+ <td colspan="1" rowspan="1">Stimuli model</td>
+ <td colspan="1" rowspan="1">This class is renamed to VariableRateStimulus. Element type is updated at both defintion and references in amxmi file</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Single</td>
+ <td colspan="1" rowspan="1">Stimuli model</td>
+ <td colspan="1" rowspan="1">This class is renamed to SingleStimulus. Element type is updated at both defintion and references in amxmi file</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Sporadic</td>
+ <td colspan="1" rowspan="1">Stimuli model</td>
+ <td colspan="1" rowspan="1">This class is renamed to SporadicStimulus. Element type is updated at both defintion and references in amxmi file</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Synthetic</td>
+ <td colspan="1" rowspan="1">Stimuli model</td>
+ <td colspan="1" rowspan="1">This class is renamed to SyntheticStimulus. Element type is updated at both defintion and references in amxmi file</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">InterProcessActivation</td>
+ <td colspan="1" rowspan="1">SW model</td>
+ <td colspan="1" rowspan="1">This class is renamed to InterProcessTrigger. Element type is updated at both defintion and references in amxmi file</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below references are removed/changed:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Name</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Type</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class containing Variable</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">coreAllocation</td>
+ <td colspan="1" rowspan="1">CoreAllocation</td>
+ <td colspan="1" rowspan="1">MappingModel</td>
+ <td colspan="1" rowspan="1">Mapping Model</td>
+ <td colspan="1" rowspan="1">coreAllocation tag name is renamed to schedulerAllocation. Equivalent of CoreAllocation is SchedulerAllocation element</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">priority</td>
+ <td colspan="1" rowspan="1">integer</td>
+ <td colspan="1" rowspan="1">TaskAllocation</td>
+ <td colspan="1" rowspan="1">Mapping Model</td>
+ <td colspan="1" rowspan="1">priority attribute is removed from TaskAllocation and its corresponding value is copied to priority attribute of the SchedulingParameters</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">xAccessPattern</td>
+ <td colspan="1" rowspan="1"> String</td>
+ <td colspan="1" rowspan="1">MemoryType</td>
+ <td colspan="1" rowspan="1">HW model</td>
+ <td colspan="1" rowspan="1">xAccessPattern attribute and its value present in MemoryType element are removed from the amxmi file</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">parameter</td>
+ <td colspan="1" rowspan="1">AlgorithmParameter</td>
+ <td colspan="1" rowspan="1">Scheduler</td>
+ <td colspan="1" rowspan="1">OS model</td>
+ <td colspan="1" rowspan="1">parameter tag name is changed to parameterExtensions (
+ <em>Also changed variable Type here is : ParameterExtensions</em>)
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">scheduleUnitPriority</td>
+ <td colspan="1" rowspan="1">integer</td>
+ <td colspan="1" rowspan="1">Scheduler</td>
+ <td colspan="1" rowspan="1">OS model</td>
+ <td colspan="1" rowspan="1">scheduleUnitPriority attribute is removed</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">delay</td>
+ <td colspan="1" rowspan="1">Time</td>
+ <td colspan="1" rowspan="1">SchedulingHWUnit</td>
+ <td colspan="1" rowspan="1">OS model</td>
+ <td colspan="1" rowspan="1">delay tag is removed</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">instructions</td>
+ <td colspan="1" rowspan="1">Instructions</td>
+ <td colspan="1" rowspan="1">SchedulingSWUnit</td>
+ <td colspan="1" rowspan="1">OS model</td>
+ <td colspan="1" rowspan="1">"instructions" tag is removed from the SchedulingSWUnit and each "instructions" tag content is copied as a "default" tag of computationItems (of type RunnableInstructions)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">schedulingUnit</td>
+ <td colspan="1" rowspan="1">SchedulingUnit</td>
+ <td colspan="1" rowspan="1">Scheduler</td>
+ <td colspan="1" rowspan="1">OS model</td>
+ <td colspan="1" rowspan="1">schedulingUnit tag is removed. And the contents of SchedulingSWUnit are migrated to ComputationItem's</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">trigger</td>
+ <td colspan="1" rowspan="1">TriggerEvent</td>
+ <td colspan="1" rowspan="1">EventStimulus</td>
+ <td colspan="1" rowspan="1">Event model</td>
+ <td colspan="1" rowspan="1">renamed to triggeringEvents</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">activation</td>
+ <td colspan="1" rowspan="1">Activation</td>
+ <td colspan="1" rowspan="1">Runnable</td>
+ <td colspan="1" rowspan="1">SW model</td>
+ <td colspan="1" rowspan="1">renamed to activations</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">deadline</td>
+ <td colspan="1" rowspan="1">Time</td>
+ <td colspan="1" rowspan="1">PeriodicActivation</td>
+ <td colspan="1" rowspan="1">SW model</td>
+ <td colspan="1" rowspan="1">deadline attribute is removed</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">trigger</td>
+ <td colspan="1" rowspan="1">TriggerEvent</td>
+ <td colspan="1" rowspan="1">EventActivation</td>
+ <td colspan="1" rowspan="1">SW model</td>
+ <td colspan="1" rowspan="1">renamed to triggeringEvents</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">priority</td>
+ <td colspan="1" rowspan="1">integer</td>
+ <td colspan="1" rowspan="1">Process</td>
+ <td colspan="1" rowspan="1">SW model</td>
+ <td colspan="1" rowspan="1">priority attribute is removed</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">osekTaskGroup</td>
+ <td colspan="1" rowspan="1">integer</td>
+ <td colspan="1" rowspan="1">Task</td>
+ <td colspan="1" rowspan="1">SW model</td>
+ <td colspan="1" rowspan="1">osekTaskGroup attribute is removed</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">quartzes</td>
+ <td colspan="1" rowspan="1">List of Quartz</td>
+ <td colspan="1" rowspan="1">Core<br>ECU<br>HwComponent<br>Memory<br>Microcontroller<br>Network</td>
+ <td colspan="1" rowspan="1">Hardware Model</td>
+ <td colspan="1" rowspan="1">All Quartz elements from these model elements are moved to HwSystem element. <br><b>Note:</b>If there are nested Quartz elements, they are flattened and stored inside a single list</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section4.4.5.5"></a>Version APP4MC 0.8.1 to APP4MC 0.8.2</h4>
+ <p>
+ <strong>Change in the namespace:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA Namespace (version App4MC 0.8.1)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA Namespace (version App4MC 0.8.2)</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">http://app4mc.eclipse.org/amalthea/0.8.1</td>
+ <td colspan="1" rowspan="1">http://app4mc.eclipse.org/amalthea/0.8.2</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section4.4.5.6"></a>Version APP4MC 0.8.2 to APP4MC 0.8.3</h4>
+ <p>
+ <strong>Change in the namespace:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA Namespace (version App4MC 0.8.2)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA Namespace (version App4MC 0.8.3)</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">http://app4mc.eclipse.org/amalthea/0.8.2</td>
+ <td colspan="1" rowspan="1">http://app4mc.eclipse.org/amalthea/0.8.3</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below Classes/Interfaces behaviour is changed:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class Name (version APP4MC 0.8.2)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Changes in behavior (as per 0.8.3)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">ModeSwitch, RunnableModelSwitch</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">valueProvider (
+ <em>of ModeLabel reference</em>) is removed and is associated to ModeValue element.
+ </td>
+ <td colspan="1" rowspan="1">valueProvider (
+ <em>of ModeLabel reference</em>) is removed and is associated to ModeValue element, which is created inside ModeValueDisjunction element contained in ModeSwitch, RunnableModeSwitch
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">ModeSwitchEntry</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">values (
+ <em>of type list of ModeLiteral</em>) is removed and is as ModeValue element inside ModeValueDisjunction class.
+ </td>
+ <td colspan="1" rowspan="1">values (
+ <em>of type list of ModeLiteral</em>) is removed and each element in the list is associated as ModeValue element, which is created inside ModeValueDisjunction element contained in ModeSwitch, RunnableModeSwitch
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">PeriodicStimulus</td>
+ <td colspan="1" rowspan="1">Stimuli Model</td>
+ <td colspan="1" rowspan="1">stimulusDevaiation, offset, clock elements are removed</td>
+ <td colspan="1" rowspan="1">For migration, below points are to be considered:<ul><li>If
+ <strong>clock value is set</strong> for PeriodicStimuls, then this PeriodicStimulus will be migrated as VariableRateStimulus. <ul><li>clock, recurrence elements are moved from PeriodicStimulus to Scenario element, contained inside VariableRateStimulus.</li> <li>offset element vlaue is moved as a customProperty for Scenario element</li> </ul> </li><li>If
+ <strong>clock value is not set</strong> for PeriodicStimuls, then type of the element will not be changed. <ul><li>stimulsDeviation element is renamed as jitter.</li></ul> </li></ul>
+ </td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below Classes are removed:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class Name (version APP4MC 0.8.2)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">FInterfacePort</td>
+ <td colspan="1" rowspan="1">Components Model</td>
+ <td colspan="1" rowspan="1">FinterfacePort is replaced by InterfacePort class. As a part of model migration, in Components model -&gt; type attribute for the definition of FInterfacePort is changed from "am:FInterfacePort" to "am:InterfacePort", and new type (InterfacePort) is also updated for references of FInterfacePort</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">SyntheticStimulus</td>
+ <td colspan="1" rowspan="1">Stimuli Model</td>
+ <td colspan="1" rowspan="1">SyntheticStimulus is replaced by PeriodicSyntheticStimulus class. As a part of model migration, in Stimuli model -&gt; type attribute for the definition of FInterfacePort is changed from "am:SyntheticStimulus" to "am:PeriodicSyntheticStimulus", and new type (PeriodicSyntheticStimulus) is also updated for references of SyntheticStimulus</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">SporadicStimulus</td>
+ <td colspan="1" rowspan="1">Stimuli Model</td>
+ <td colspan="1" rowspan="1">SporadicStimulus is replaced by RelativePeriodicStimulus class. As a part of model migration, in Stimuli model -&gt; type attribute for the definition of SporadicStimulus is changed from "am:SporadicStimulus" to "am:RelativePeriodicStimulus", and new type (RelativePeriodicStimulus) is also updated for references of SporadicStimulus</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below references are removed/changed:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Name</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Type</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class containing Variable</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">activationDeviation</td>
+ <td colspan="1" rowspan="1">Deviation</td>
+ <td colspan="1" rowspan="1">VariableRateActivation</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">activationDeviation element is removed from the VariableRateActivation element</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">valueProvider</td>
+ <td colspan="1" rowspan="1">ModeLabel</td>
+ <td colspan="1" rowspan="1">ModeSwitch, RunnableModeSwitch</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">valueProvider (
+ <em>ModeLabel reference</em>) is removed directly from
+ <em>
+ <strong>ModeSwitch, RunnableModelSwitch</strong>
+ </em> elements and associated to each ModeValue element -&gt;&gt; which is created inside condition element (
+ <em>of type ModeValueDisJunction</em>)
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">values</td>
+ <td colspan="1" rowspan="1">ModeLiteral</td>
+ <td colspan="1" rowspan="1">ModeSwitch, RunnableModeSwitch</td>
+ <td colspan="1" rowspan="1">SW Model</td>
+ <td colspan="1" rowspan="1">values list is removed directly from
+ <em>
+ <strong>ModeSwitch, RunnableModelSwitch</strong>
+ </em> and associated inside condition element (
+ <em>of type ModeValueDisJunction</em>) as different ModeValue elements (
+ <em>Note: Each element in values List is created a seperate ModeValue element inside condition element</em>)
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">period</td>
+ <td colspan="1" rowspan="1">Time</td>
+ <td colspan="1" rowspan="1">SyntheticStimulus</td>
+ <td colspan="1" rowspan="1">Stimuli Model</td>
+ <td colspan="1" rowspan="1">period element is changed to recurrence</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">triggerTimes</td>
+ <td colspan="1" rowspan="1">TimeStampList</td>
+ <td colspan="1" rowspan="1">SyntheticStimulus</td>
+ <td colspan="1" rowspan="1">Stimuli Model</td>
+ <td colspan="1" rowspan="1">triggerTimes element is removed from SyntheticStimulus. Content of TriggerTimes element -&gt;
+ <strong>timeStamps list</strong> is migrated as occurrenceTimes element inside SyntheticStimulus
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">stimulusDeviation</td>
+ <td colspan="1" rowspan="1">Deviation</td>
+ <td colspan="1" rowspan="1">SporadicStimulus</td>
+ <td colspan="1" rowspan="1">Stimuli Model</td>
+ <td colspan="1" rowspan="1">stimulusDeviation element is changed as nextOccurrence</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">numberOfEvents</td>
+ <td colspan="1" rowspan="1">Integer</td>
+ <td colspan="1" rowspan="1">ArrivalCurveEntry</td>
+ <td colspan="1" rowspan="1">Stimuli Model</td>
+ <td colspan="1" rowspan="1">numberOfEvents element is changed as numberOfOccurrences</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">stimulusDeviation</td>
+ <td colspan="1" rowspan="1">Deviation</td>
+ <td colspan="1" rowspan="1">ArrivalCurveStimulus, SingleStimulus, CustomStimulus, InterProcessStimulus, EventStimulus, SyntheticStimulus</td>
+ <td colspan="1" rowspan="1">Stimuli Model</td>
+ <td colspan="1" rowspan="1">stimulusDeviation element is removed from SingleStimulus</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">activation</td>
+ <td colspan="1" rowspan="1">Time</td>
+ <td colspan="1" rowspan="1">SingleStimulus</td>
+ <td colspan="1" rowspan="1">Stimuli Model</td>
+ <td colspan="1" rowspan="1">activation element is changed as occurrence</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">stimulusDeviation</td>
+ <td colspan="1" rowspan="1">Deviation</td>
+ <td colspan="1" rowspan="1">PeriodicStimulus</td>
+ <td colspan="1" rowspan="1">Stimuli Model</td>
+ <td colspan="1" rowspan="1">If clock value is
+ <strong>not set</strong> for PeriodicStimulus, in this case stimulusDeviation element is changed as jitter.
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">recurrence, clock</td>
+ <td colspan="1" rowspan="1">Time</td>
+ <td colspan="1" rowspan="1">PeriodicStimulus</td>
+ <td colspan="1" rowspan="1">Stimuli Model</td>
+ <td colspan="1" rowspan="1">If clock value is
+ <strong>set</strong> for PeriodicStimulus, in this case both recurrence and clock are removed directly from PeriodicStimulus and their values are added inside Scenario element -&gt; contained inside PeriodicStimulus(
+ <em>which will be migrated to VariableRateStimulus as a part of migration</em>)
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">offset</td>
+ <td colspan="1" rowspan="1">Time</td>
+ <td colspan="1" rowspan="1">PeriodicStimulus</td>
+ <td colspan="1" rowspan="1">Stimuli Model</td>
+ <td colspan="1" rowspan="1">If clock value is
+ <strong>set</strong> for PeriodicStimulus, in this case offset element is removed directly from PeriodicStimulus and its value is added inside Scenario element -&gt; contained inside PeriodicStimulus(
+ <em>which will be migrated to VariableRateStimulus as a part of migration</em>) as a CustomProperty with name "offset"
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">stimulusDeviation</td>
+ <td colspan="1" rowspan="1">Deviation</td>
+ <td colspan="1" rowspan="1">PeriodicStimulus</td>
+ <td colspan="1" rowspan="1">Stimuli Model</td>
+ <td colspan="1" rowspan="1">If clock value is
+ <strong>set</strong> then stimulusDeviation element is removed from PeriodicStimulus
+ </td>
+ </tr>
+ </table>
+
+
+<h4><a id="section4.4.5.7"></a>Version APP4MC 0.8.3 to APP4MC 0.9.0</h4>
+ <p>
+ <strong>Change in the namespace:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA Namespace (version App4MC 0.8.3)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA Namespace (version App4MC 0.9.0)</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">http://app4mc.eclipse.org/amalthea/0.8.3</td>
+ <td colspan="1" rowspan="1">http://app4mc.eclipse.org/amalthea/0.9.0</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below Classes/Interfaces behaviour is changed:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class Name (version APP4MC 0.8.3)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Changes in behavior (as per 0.9.0)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Memory</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">Memory and Cache are two different elements. Memory can be defined only inside a HwStructure where as Cache can be defined inside HwStructure and ProcessingUnit</td>
+ <td colspan="1" rowspan="1">Memory element of 0.8.3 is converted either as a Memory element or Cache element based on the type specified for MemoryType element. If the type is specified as
+ <strong>CACHE</strong>, then Memory object
+ <em class="from 0.8.3">_ is converted as
+ <strong>Cache</strong> element and in other cases it is converted as
+ <strong>Memory</strong>. <br>
+ <strong>Note:</strong> _In 0.8.3, Memory element could be contained inside a ComplexNode, as a part of migration : If there is not a possibiity to define either a Cache or Memory inside a specific element then it is added as a part of the corresponding parent HwStructure element
+ </em>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">HwPort</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">HwPort and ComplexPort elements from 0.8.3 are represented as HwPort in 0.9.0.</td>
+ <td colspan="1" rowspan="1">For both HwPort and ComplexPort elements, HwPort object is created. Based on the value of attribute master on HwPort or ComplexPort : portType is set either as initiator
+ <em class="if master=true">_ or responder _(if master=false)</em>
+ </td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below Classes are removed:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class Name (version APP4MC 0.8.3)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">RunnableInstructions</td>
+ <td colspan="1" rowspan="1">SWModel, OSModel</td>
+ <td colspan="1" rowspan="1">Equivalent element of this class in 0.9.0 is ExecutionNeed.
+ <strong>default</strong> InstructionsConstant,InstructionsDeviation are converted as NeedEntry and the key refers to HwFeatureCategory "Instructions"
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">RunnableInstructionsEntry</td>
+ <td colspan="1" rowspan="1">SWModel, OSModel</td>
+ <td colspan="1" rowspan="1">Equivalent element of this class in 0.9.0 is ExecutionNeedExtended. Key attribute of ExecutionNeedExtended refer to
+ <strong>ProcessingUnitDefintion</strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">ECUType</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">There is no equivalent element in 0.9.0</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">MicroControllerType</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">There is no equivalent element in 0.9.0</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">SystemType</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">There is no equivalent element in 0.9.0</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">HWAccessPath</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">There is no equivalent element in 0.9.0. Only LatencyAccessPath is migrated</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">HWComponent</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">There is no equivalent element in 0.9.0</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">NestedComponent</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">There is no equivalent element in 0.9.0</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">PreScaler</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">There is no equivalent element in 0.9.0. Based on to which HW element PreScaler is added ,Quartz of the corresponding element is fetched : value of
+ <strong>clockRatio</strong> is multiplied with the Frequency value of the Quartz and a new FrequencyDomain object is created which contains the obtained Frequency value. Created FrequencyDomain will contain clockratio value in suffix of the name
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Quartz</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">Equivalent element of this class in 0.9.0 is FrequencyDomain.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Pin</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">There is no equivalent element in 0.9.0</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">MemoryType</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">Equivalent element of this class in 0.9.0 is MemoryDefinition. If type is specified as
+ <strong>Cache</strong>, then corresponding element is migrated as
+ <strong>CacheDefinition</strong>, in other cases it will be MemoryDefinition
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">CoreType</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">Equivalent element of this class in 0.9.0 is ProcessingUnitDefinition.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">NetworkType, Bus, Bridge, CrossbarSwitch</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">Equivalent element of these classes in 0.9.0 is ConnectionHandlerDefinition.</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">LatencyAccessPath</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">Equivalent element of this class in 0.9.0 is HwAccessElement. If the source element of the LatencyAccessPath is Core, in the corresponding ProcessingUnit : HwAccessElement is created and the destination of it is set based on the destination of LatencyAccessPath
+ <em>(Note: Destination of HwAccessElement can only be Memory or ProcessingUnit)</em>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">System</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">Equivalent element of this class in 0.9.0 is HwStructure. StructureType is set as System</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">ECU</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">Equivalent element of this class in 0.9.0 is HwStructure. StructureType is set as ECU</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">MicroController</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">Equivalent element of this class in 0.9.0 is HwStructure. StructureType is set as Microcontroller</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Core</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">Equivalent element of this class in 0.9.0 is ProcessingUnit</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Network</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">Equivalent element of this class in 0.9.0 is ConnectionHandler</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">ComplexPort</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">There is no equivalent element in 0.9.0</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below references are removed/changed:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Name(version APP4MC 0.8.3)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Type</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class containing Variable</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">memories</td>
+ <td colspan="1" rowspan="1">Memory</td>
+ <td colspan="1" rowspan="1">TargetMemory</td>
+ <td colspan="1" rowspan="1">ConstraintsModel</td>
+ <td colspan="1" rowspan="1">If the Memory object as per 0.8.3 is still Memory in 0.9.0, then reference is unchanged. If Memory in 0.8.3 is migrated as Cache based on the type of MemoryType
+ <em>(as CACHE in 0.8.3)</em> , corresponding reference is removed
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">memories</td>
+ <td colspan="1" rowspan="1">Memory</td>
+ <td colspan="1" rowspan="1">PhysicalSectionConstraint</td>
+ <td colspan="1" rowspan="1">ConstraintsModel</td>
+ <td colspan="1" rowspan="1">If the Memory object as per 0.8.3 is still Memory in 0.9.0, then reference is unchanged. If Memory in 0.8.3 is migrated as Cache based on the type of MemoryType
+ <em>(as CACHE in 0.8.3)</em> , corresponding reference is removed
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">memory</td>
+ <td colspan="1" rowspan="1">Memory</td>
+ <td colspan="1" rowspan="1">PhysicalSectionMapping</td>
+ <td colspan="1" rowspan="1">MappingModel</td>
+ <td colspan="1" rowspan="1">If the Memory object as per 0.8.3 is still Memory in 0.9.0, then reference is unchanged. If Memory in 0.8.3 is migrated as Cache based on the type of MemoryType
+ <em>(as CACHE in 0.8.3)</em> , corresponding reference is removed
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">memory</td>
+ <td colspan="1" rowspan="1">Memory</td>
+ <td colspan="1" rowspan="1">MemoryMapping</td>
+ <td colspan="1" rowspan="1">MappingModel</td>
+ <td colspan="1" rowspan="1">If the Memory object as per 0.8.3 is still Memory in 0.9.0, then reference is unchanged. If Memory in 0.8.3 is migrated as Cache based on the type of MemoryType
+ <em>(as CACHE in 0.8.3)</em> , corresponding reference is removed
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">cores</td>
+ <td colspan="1" rowspan="1">Core</td>
+ <td colspan="1" rowspan="1">TargetCore</td>
+ <td colspan="1" rowspan="1">ConstraintsModel</td>
+ <td colspan="1" rowspan="1">instead of Core object, variable Type is updated to corresponding ProcessingUnit element</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">hardwareContext</td>
+ <td colspan="1" rowspan="1">ComplexNode</td>
+ <td colspan="1" rowspan="1">CPUPercentageRequirementLimit</td>
+ <td colspan="1" rowspan="1">ConstraintModel</td>
+ <td colspan="1" rowspan="1">variable Type is changed to ProcessingUnit. In 0.8.3 models if an element was referring to any other ComplexNode other than Core, corresponding reference will be removed</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">core</td>
+ <td colspan="1" rowspan="1">Core</td>
+ <td colspan="1" rowspan="1">ProcessEvent</td>
+ <td colspan="1" rowspan="1">EventModel</td>
+ <td colspan="1" rowspan="1">variable name is changed from core to processingUnit.Type of the reference is changed to ProcessingUnit</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">core</td>
+ <td colspan="1" rowspan="1">Core</td>
+ <td colspan="1" rowspan="1">ProcessChainEvent</td>
+ <td colspan="1" rowspan="1">EventModel</td>
+ <td colspan="1" rowspan="1">variable name is changed from core to processingUnit.Type of the reference is changed to ProcessingUnit</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">core</td>
+ <td colspan="1" rowspan="1">Core</td>
+ <td colspan="1" rowspan="1">RunnableEvent</td>
+ <td colspan="1" rowspan="1">EventModel</td>
+ <td colspan="1" rowspan="1">variable name is changed from core to processingUnit.Type of the reference is changed to ProcessingUnit</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">core</td>
+ <td colspan="1" rowspan="1">Core</td>
+ <td colspan="1" rowspan="1">SemaphoreEvent</td>
+ <td colspan="1" rowspan="1">EventModel</td>
+ <td colspan="1" rowspan="1">variable name is changed from core to processingUnit.Type of the reference is changed to ProcessingUnit</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">cores</td>
+ <td colspan="1" rowspan="1">Core</td>
+ <td colspan="1" rowspan="1">MicroController</td>
+ <td colspan="1" rowspan="1">HWModel</td>
+ <td colspan="1" rowspan="1">variable name is changed from cores to modules.Type of the reference is changed to ProcessingUnit. MicroController class is changed to HwStructure</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">responsibility</td>
+ <td colspan="1" rowspan="1">Core</td>
+ <td colspan="1" rowspan="1">SchdulerAllocation</td>
+ <td colspan="1" rowspan="1">MappingModel</td>
+ <td colspan="1" rowspan="1">Type is changed from Core to ProcessingUnit</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">executingCore</td>
+ <td colspan="1" rowspan="1">Core</td>
+ <td colspan="1" rowspan="1">SchdulerAllocation</td>
+ <td colspan="1" rowspan="1">MappingModel</td>
+ <td colspan="1" rowspan="1">variable name is changed from executingCore to executingPU. Type is changed from Core to ProcessingUnit</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">coreAffinity</td>
+ <td colspan="1" rowspan="1">Core</td>
+ <td colspan="1" rowspan="1">TaskAllocation</td>
+ <td colspan="1" rowspan="1">MappingModel</td>
+ <td colspan="1" rowspan="1">variable name is changed from coreAffinity to affinity. Type is changed from Core to ProcessingUnit</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">items, runnableItems, computationItems</td>
+ <td colspan="1" rowspan="1">RunnableInstructions</td>
+ <td colspan="1" rowspan="1">Group, Runnable, Scheduler</td>
+ <td colspan="1" rowspan="1">SWModel, OSModel</td>
+ <td colspan="1" rowspan="1">Type is changed from RunnableInstructions to ExecutionNeed</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section4.4.5.8"></a>Version APP4MC 0.9.0 to APP4MC 0.9.1</h4>
+ <p>
+ <strong>Change in the namespace:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA Namespace (version App4MC 0.9.0)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA Namespace (version App4MC 0.9.1)</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">http://app4mc.eclipse.org/amalthea/0.9.0</td>
+ <td colspan="1" rowspan="1">http://app4mc.eclipse.org/amalthea/0.9.1</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below Classes are removed:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class Name (version APP4MC 0.9.0)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">TimeObject</td>
+ <td colspan="1" rowspan="1">Equivalent element of this class in 0.9.1 is Time</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section4.4.5.9"></a>Version APP4MC 0.9.1 to APP4MC 0.9.2</h4>
+ <p>
+ <strong>Change in the namespace:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA Namespace (version App4MC 0.9.1)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA Namespace (version App4MC 0.9.2)</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">http://app4mc.eclipse.org/amalthea/0.9.1</td>
+ <td colspan="1" rowspan="1">http://app4mc.eclipse.org/amalthea/0.9.2</td>
+ </tr>
+ </table>
+
+
+<h4><a id="section4.4.5.10"></a>Version APP4MC 0.9.2 to APP4MC 0.9.3</h4>
+ <p>
+ <strong>Change in the namespace:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA Namespace (version App4MC 0.9.2)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA Namespace (version App4MC 0.9.3)</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">http://app4mc.eclipse.org/amalthea/0.9.2</td>
+ <td colspan="1" rowspan="1">http://app4mc.eclipse.org/amalthea/0.9.3</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below Classes are removed:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class Name (version APP4MC 0.9.2)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">Deviation</td>
+ <td colspan="1" rowspan="1">Depending on the type of generic used for Deviation element, contents are migrated as IContinuousValueDeviation or IDiscreteValueDeviation or ITimeDeviation</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Following Class names are changed:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>Class name in 0.9.2</strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>Changed Class name in 0.9.3</strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>Amalthea sub-model</strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">OsInstructions</td>
+ <td colspan="1" rowspan="1">OsOverhead</td>
+ <td colspan="1" rowspan="1">os</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">OsAPIInstructions</td>
+ <td colspan="1" rowspan="1">OsAPIOverhead</td>
+ <td colspan="1" rowspan="1">os</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">OsISRInstructions</td>
+ <td colspan="1" rowspan="1">OsISROverhead</td>
+ <td colspan="1" rowspan="1">os</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">LatencyConstant</td>
+ <td colspan="1" rowspan="1">DiscreteValueConstant</td>
+ <td colspan="1" rowspan="1">hw</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">LatencyDeivation</td>
+ <td colspan="1" rowspan="1">DiscreteValueBetaDistribution DiscreteValueBoundaries DiscreteValueGaussDistribution DiscreteValueStatistics DiscreteValueUniformDistribution DiscreteValueWeibullEstimatorsDistribution</td>
+ <td colspan="1" rowspan="1">os</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Following Classes behavior is changed:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>Class name</strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>Amalthea sub-model</strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>Changed behavior in 0.9.3</strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">ExecutionNeed</td>
+ <td colspan="1" rowspan="1">sw</td>
+ <td colspan="1" rowspan="1">Till 0.9.2 ExecutionNeed element was used to specify the runtime information and also additional behaviour e.g: Performance etc., <br>Based on the latest change in 0.9.3, runtime information should be represented with Ticks element and additional information w.r.t. Performance etc., can be represented using ExecutionNeed element</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Below references are changed:</strong>
+ </p>
+ <table class="classic" style="margin-left:40px">
+ <tr>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Name(version APP4MC 0.9.2)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Name(version APP4MC 0.9.3)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Type (in 0.9.2)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Variable Type (in 0.9.3)</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Class containing Variable</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>AMALTHEA sub model</em>
+ </strong>
+ </td>
+ <td colspan="1" rowspan="1">
+ <strong>
+ <em>Model Migration behavior</em>
+ </strong>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">occurencesPerStep</td>
+ <td colspan="1" rowspan="1">occurencesPerStep</td>
+ <td colspan="1" rowspan="1">Deviation&lt;DoubleObject&gt;</td>
+ <td colspan="1" rowspan="1">IContinuousValueDeviation</td>
+ <td colspan="1" rowspan="1">VariableRateActivation</td>
+ <td colspan="1" rowspan="1">sw</td>
+ <td colspan="1" rowspan="1">As there is a change in the Type of this reference from Deviation&lt;DoubleObject&gt; to IContinousValueDeviation. Content is migrated to the new elements.<br> Following elemenets are supported as Type: BoundedContinuousValueDistribution ContinuousValueBetaDistribution ContinuousValueBoundaries ContinuousValueConstant ContinuousValueGaussDistribution ContinuousValueHistogram ContinuousValueStatistics ContinuousValueUniformDistribution ContinuousValueWeibullEstimatorsDistribution TruncatedContinuousValueDistribution</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">activationDeviation</td>
+ <td colspan="1" rowspan="1">activation</td>
+ <td colspan="1" rowspan="1">Deviation&lt;Time&gt;</td>
+ <td colspan="1" rowspan="1">ITimeDeviation</td>
+ <td colspan="1" rowspan="1">SporadicActivation</td>
+ <td colspan="1" rowspan="1">sw</td>
+ <td colspan="1" rowspan="1">As there is a change in the Type of this reference from Deviation&lt;Time&gt; to ITimeDeviation. Content is migrated to the new elements.<br> Following elemenets are supported as Type : TimeBetaDistribution TimeBoundaries TimeConstant TimeGaussDistribution TimeHistogram TimeStatistics TimeUniformDistribution TimeWeibullEstimatorsDistribution</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">chunkProcessingInstructions</td>
+ <td colspan="1" rowspan="1">chunkProcessingTicks</td>
+ <td colspan="1" rowspan="1">EInt</td>
+ <td colspan="1" rowspan="1">EInt</td>
+ <td colspan="1" rowspan="1">ChannelReceive ChannelSend LabelAccess</td>
+ <td colspan="1" rowspan="1">sw</td>
+ <td colspan="1" rowspan="1">reference name changed from chunkProcessingInstructions to chunkProcessingTicks</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">computationItems</td>
+ <td colspan="1" rowspan="1">computationItems</td>
+ <td colspan="1" rowspan="1">ExecutionNeed</td>
+ <td colspan="1" rowspan="1">Ticks</td>
+ <td colspan="1" rowspan="1">TaskScheduler InterruptController</td>
+ <td colspan="1" rowspan="1">os</td>
+ <td colspan="1" rowspan="1">ExecutionNeed elements with HwFeatureCategory Instructions, are converted as Ticks with default or extended (based on the way ExecutionNeed was defined earlier)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">items</td>
+ <td colspan="1" rowspan="1">items</td>
+ <td colspan="1" rowspan="1">ExecutionNeed</td>
+ <td colspan="1" rowspan="1">ExecutionNeed</td>
+ <td colspan="1" rowspan="1">Group</td>
+ <td colspan="1" rowspan="1">sw</td>
+ <td colspan="1" rowspan="1">ExecutionNeed elements with HwFeatureCategory Instructions are converted as Ticks. If HwFeatureCategory is other than Instructions, then content of the specific entry is retained as ExecutionNeed <br>(In 0.9.3 ExecutionNeed does not support Extended entries )</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">runnableitems</td>
+ <td colspan="1" rowspan="1">runnableitems</td>
+ <td colspan="1" rowspan="1">ExecutionNeed</td>
+ <td colspan="1" rowspan="1">ExecutionNeed</td>
+ <td colspan="1" rowspan="1">Runnable</td>
+ <td colspan="1" rowspan="1">sw</td>
+ <td colspan="1" rowspan="1">ExecutionNeed elements with HwFeatureCategory Instructions are converted as Ticks. If HwFeatureCategory is other than Instructions, then content of the specific entry is retained as ExecutionNeed <br>(In 0.9.3 ExecutionNeed does not support Extended entries )</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">jitter</td>
+ <td colspan="1" rowspan="1">jitter</td>
+ <td colspan="1" rowspan="1">Deviation&lt;Time&gt;</td>
+ <td colspan="1" rowspan="1">ITimeDeviation</td>
+ <td colspan="1" rowspan="1">PeriodicStimulus</td>
+ <td colspan="1" rowspan="1">stimuli</td>
+ <td colspan="1" rowspan="1">As there is a change in the Type of this reference from Deviation&lt;Time&gt; to ITimeDeviation. Content is migrated to the new elements.<br> Following elemenets are supported as Type : TimeBetaDistribution TimeBoundaries TimeConstant TimeGaussDistribution TimeHistogram TimeStatistics TimeUniformDistribution TimeWeibullEstimatorsDistribution</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">nextOccurrence</td>
+ <td colspan="1" rowspan="1">nextOccurrence</td>
+ <td colspan="1" rowspan="1">Deviation&lt;Time&gt;</td>
+ <td colspan="1" rowspan="1">ITimeDeviation</td>
+ <td colspan="1" rowspan="1">RelativePeriodicStimulus</td>
+ <td colspan="1" rowspan="1">stimuli</td>
+ <td colspan="1" rowspan="1">As there is a change in the Type of this reference from Deviation&lt;Time&gt; to ITimeDeviation. Content is migrated to the new elements.<br> Following elemenets are supported as Type : TimeBetaDistribution TimeBoundaries TimeConstant TimeGaussDistribution TimeHistogram TimeStatistics TimeUniformDistribution TimeWeibullEstimatorsDistribution</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">occurencesPerStep</td>
+ <td colspan="1" rowspan="1">occurencesPerStep</td>
+ <td colspan="1" rowspan="1">Deviation&lt;DoubleObject&gt;</td>
+ <td colspan="1" rowspan="1">IContinuousValueDeviation</td>
+ <td colspan="1" rowspan="1">VariableRateStimulus</td>
+ <td colspan="1" rowspan="1">stimuli</td>
+ <td colspan="1" rowspan="1">As there is a change in the Type of this reference from Deviation&lt;DoubleObject&gt; to IContinousValueDeviation. Content is migrated to the new elements.<br> Following elemenets are supported as Type: BoundedContinuousValueDistribution ContinuousValueBetaDistribution ContinuousValueBoundaries ContinuousValueConstant ContinuousValueGaussDistribution ContinuousValueHistogram ContinuousValueStatistics ContinuousValueUniformDistribution ContinuousValueWeibullEstimatorsDistribution TruncatedContinuousValueDistribution</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">maxIncreasePerStep</td>
+ <td colspan="1" rowspan="1">maxIncreasePerStep</td>
+ <td colspan="1" rowspan="1">DoubleObject</td>
+ <td colspan="1" rowspan="1">Double</td>
+ <td colspan="1" rowspan="1">VariableRateStimulus</td>
+ <td colspan="1" rowspan="1">stimuli</td>
+ <td colspan="1" rowspan="1">Double value is migrated as a attribute</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">maxDecreasePerStep</td>
+ <td colspan="1" rowspan="1">maxDecreasePerStep</td>
+ <td colspan="1" rowspan="1">DoubleObject</td>
+ <td colspan="1" rowspan="1">Double</td>
+ <td colspan="1" rowspan="1">VariableRateStimulus</td>
+ <td colspan="1" rowspan="1">stimuli</td>
+ <td colspan="1" rowspan="1">Double value is migrated as a attribute</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">osOverheads</td>
+ <td colspan="1" rowspan="1">osOverheads</td>
+ <td colspan="1" rowspan="1">OsInstructions</td>
+ <td colspan="1" rowspan="1">OsOverhead</td>
+ <td colspan="1" rowspan="1">OSModel</td>
+ <td colspan="1" rowspan="1">os</td>
+ <td colspan="1" rowspan="1">References are updated accordingly</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">apiSendMessage apiTerminateTask apiSchedule apiRequestResource apiReleaseResource apiSetEvent apiWaitEvent apiClearEvent apiActivateTask apiEnforcedMigration apiSuspendOsInterrupts apiResumeOsInterrupts apiRequestSpinlock apiReleaseSpinlock apiSenderReceiverRead apiSenderReceiverWrite apiSynchronousServerCallPoint apiIocRead apiIocWrite</td>
+ <td colspan="1" rowspan="1">apiSendMessage apiTerminateTask apiSchedule apiRequestResource apiReleaseResource apiSetEvent apiWaitEvent apiClearEvent apiActivateTask apiEnforcedMigration apiSuspendOsInterrupts apiResumeOsInterrupts apiRequestSpinlock apiReleaseSpinlock apiSenderReceiverRead apiSenderReceiverWrite apiSynchronousServerCallPoint apiIocRead apiIocWrite</td>
+ <td colspan="1" rowspan="1">Instructions</td>
+ <td colspan="1" rowspan="1">Ticks</td>
+ <td colspan="1" rowspan="1">OsAPIInstructions</td>
+ <td colspan="1" rowspan="1">os</td>
+ <td colspan="1" rowspan="1">Instructions elements are converted to Ticks. <br>InstructionsConstant is converted to DiscreteValueConstant. <br>InstructionsDeviation is converted to one of the following type
+ <em>(based on conversion criteria)</em>: <br> DiscreteValueBetaDistribution DiscreteValueBoundaries DiscreteValueGaussDistribution DiscreteValueStatistics DiscreteValueUniformDistribution DiscreteValueWeibullEstimatorsDistribution
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">preExecutionOverhead postExecutionOverhead</td>
+ <td colspan="1" rowspan="1">preExecutionOverhead postExecutionOverhead</td>
+ <td colspan="1" rowspan="1">Instructions</td>
+ <td colspan="1" rowspan="1">Ticks</td>
+ <td colspan="1" rowspan="1">OsISRInstructions</td>
+ <td colspan="1" rowspan="1">os</td>
+ <td colspan="1" rowspan="1">Instructions elements are converted to Ticks. <br>InstructionsConstant is converted to DiscreteValueConstant. <br>InstructionsDeviation is converted to one of the following type
+ <em>(based on conversion criteria)</em>: <br> DiscreteValueBetaDistribution DiscreteValueBoundaries DiscreteValueGaussDistribution DiscreteValueStatistics DiscreteValueUniformDistribution DiscreteValueWeibullEstimatorsDistribution
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">runtimeDeviation</td>
+ <td colspan="1" rowspan="1">runtimeDeviation</td>
+ <td colspan="1" rowspan="1">Deviation&lt;Time&gt;</td>
+ <td colspan="1" rowspan="1">ITimeDeviation</td>
+ <td colspan="1" rowspan="1">Measurement</td>
+ <td colspan="1" rowspan="1">MeasurementModel</td>
+ <td colspan="1" rowspan="1">As there is a change in the Type of this reference from Deviation&lt;Time&gt; to ITimeDeviation. Content is migrated to the new elements.<br> Following elemenets are supported as Type : TimeBetaDistribution TimeBoundaries TimeConstant TimeGaussDistribution TimeHistogram TimeStatistics TimeUniformDistribution TimeWeibullEstimatorsDistribution</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">cycles</td>
+ <td colspan="1" rowspan="1">value</td>
+ <td colspan="1" rowspan="1">Long</td>
+ <td colspan="1" rowspan="1">Long</td>
+ <td colspan="1" rowspan="1">LatencyConstant</td>
+ <td colspan="1" rowspan="1">hw</td>
+ <td colspan="1" rowspan="1">LatencyConstant is changed to DiscreteValueConstant, reference name changed from cycles to value</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">cycles</td>
+ <td colspan="1" rowspan="1">value</td>
+ <td colspan="1" rowspan="1">Deviation</td>
+ <td colspan="1" rowspan="1">Deviation&lt;DoubleObject&gt;</td>
+ <td colspan="1" rowspan="1">LatencyDeviation</td>
+ <td colspan="1" rowspan="1">hw</td>
+ <td colspan="1" rowspan="1">LatencyDeviation is changed to DiscreteValueBetaDistribution DiscreteValueBoundaries DiscreteValueGaussDistribution DiscreteValueStatistics DiscreteValueUniformDistribution DiscreteValueWeibullEstimatorsDistribution. In 0.9.3, intermediate cycles element is removed. Content of it is merged as a part of the Distribution</td>
+ </tr>
+ </table>
+
+
+<h2><a id="section4.5">4.5 </a>Model Utilities</h2>
+ <p>The model utilities provide implementations for typical usage scenarios:</p>
+ <dl>
+ <dt>
+ <strong>
+ <a href="javadoc/model/package-summary.html">General Helper Classes</a>
+ </strong>
+ </dt>
+ <dd>Support for search and delete</dd>
+ </dl>
+ <dl>
+ <dt>
+ <strong>
+ <a href="javadoc/model/builder/package-summary.html">Builder Classes</a>
+ </strong>
+ </dt>
+ <dd>Support for Groovy-like builders (Xtend2)</dd>
+ </dl>
+ <dl>
+ <dt>
+ <strong>
+ <a href="javadoc/model/io/package-summary.html">I/O Classes</a>
+ </strong>
+ </dt>
+ <dd>Support for loading and storing of models</dd>
+ </dl>
+ <dl>
+ <dt>
+ <strong>
+ <a href="javadoc/model/util/package-summary.html">Utilities</a>
+ </strong>
+ </dt>
+ <dd>Model utilities</dd>
+ </dl>
+ <p>
+ <i>Common</i>
+ </p>
+ <ul>
+ <li>
+ <a href="javadoc/model/util/ModelUtil.html">ModelUtil</a>
+ </li>
+ <li>
+ <a href="javadoc/model/util/FactoryUtil.html">FactoryUtil</a>
+ </li>
+ <li>
+ <a href="javadoc/model/util/CustomPropertyUtil.html">CustomPropertyUtil</a>
+ </li>
+ <li>
+ <a href="javadoc/model/util/TimeUtil.html">TimeUtil</a>
+ </li>
+ </ul>
+ <p>
+ <i>Specific</i>
+ </p>
+ <ul>
+ <li>
+ <a href="javadoc/model/util/SoftwareUtil.html">Software Utilities</a> - Call graph traversal, accesses, calls
+ </li>
+ <li>
+ <a href="javadoc/model/util/RuntimeUtil.html">Runtime Utilities</a> - Runtime, utilization, ticks
+ </li>
+ <li>
+ <a href="javadoc/model/util/DeploymentUtil.html">Deployment Utilities</a> - Mapping of tasks to cores and data to memory
+ </li>
+ <li>
+ <a href="javadoc/model/util/HardwareUtil.html">Hardware Utilities</a> - Access paths and latencies
+ </li>
+ </ul>
+ <p>
+ <b>
+ <i>Scope</i>
+ </b>
+ </p>
+ <p>The model utilities are part of the model plugin.</p>
+
+
+<h2><a id="section4.6">4.6 </a>Model Details</h2>
+
+
+<h3><a id="section4.6.1">4.6.1 </a>Unique ID generation</h3>
+ <p>AMALTHEA uses a named based schema to reference other elements inside of a model.
+ <br>A custom implementation is used instead of the standard EMF mechanism, which uses an index based implementation.
+ <br>The target element id is identified by the following schema:
+ </p>
+ <pre xml:space="preserve"><code>java.net.URLEncoder.encode(&lt;name of element&gt;, StandardCharsets.UTF_8.toString)) + "?type=" + &lt;element&gt;.eClass.name
+</code></pre>
+ <p>Samples:</p>
+ <p>Referencing a Runnable element with name foo in a TaskRunnableCall looks like the following snippet:</p>
+ <pre xml:space="preserve"><code>&lt;calls xsi:type="am:TaskRunnableCall" runnable="foo?type=Runnable" /&gt;
+</code></pre>
+
+
+<h3><a id="section4.6.2">4.6.2 </a>Interfaces and base objects</h3>
+ <p>Several interfaces and abstract classes are defined in the common model.
+ <br>They provide basic common functionality for all objects, which are extending it, like the possibility to add
+ <i>CustomAttributes</i> or
+ <i>Tags</i>. Tags are available at different elements with the purpose to group them together or to annotate them.
+ </p>
+ <p>
+ <img class="scale" src="images/model_common_interfaces_base_objects.png"/>
+ </p>
+
+
+<h3><a id="section4.6.3">4.6.3 </a>Derived references</h3>
+ <p>Some derived references are introduces to simplify a multi-level navigation. They are read only.</p>
+ <table>
+ <tr>
+ <td colspan="1" rowspan="1"/>
+ <td colspan="1" rowspan="1" style="text-align:center">Reference</td>
+ <td colspan="1" rowspan="1"/>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>ModeLabel</code>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>mode</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>Mode</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>ISystem</code>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>innerPorts</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>QualifiedPort</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>HwPath</code>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>source</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>ProcessingUnit</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>HwPath</code>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>destination</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>HwDestination</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>TaskScheduler</code>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>childSchedulers</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>TaskScheduler</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>TaskScheduler</code>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>parentScheduler</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>TaskScheduler</code>
+ </td>
+ </tr>
+ </table>
+
+
+<h3><a id="section4.6.4">4.6.4 </a>Transient back pointers</h3>
+ <p>AMALTHEA maintains a number of back pointers in the model. These transient references of an object 'point back' to the object referring to it. </p>
+
+
+<h4><a id="section4.6.4.1"></a>Container references</h4>
+ <p>Container references provide an easier access to the eContainer of an object.</p>
+ <p>The following references are specified as opposite references and can be modified.
+ <br>By the prefix "containing" they clearly indicate that a containment is changed.
+ </p>
+ <table>
+ <tr>
+ <td colspan="1" rowspan="1"/>
+ <td colspan="1" rowspan="1">Container reference</td>
+ <td colspan="1" rowspan="1" style="text-align: right;">Containment reference</td>
+ <td colspan="1" rowspan="1"/>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>Component</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>containingComponent</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>ports</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>Port</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>Mode</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>containingMode</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>literals</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>ModeLiteral</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>HwFeatureCategory</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>containingCategory</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>features</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>HwFeature</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>HwAccessElement</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>containingAccessElement</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>accessPath</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>HwAccessPath</code>
+ </td>
+ </tr>
+ </table>
+ <p>The following references are specified as opposite references.</p>
+ <table>
+ <tr>
+ <td colspan="1" rowspan="1"/>
+ <td colspan="1" rowspan="1">Container reference (read only)</td>
+ <td colspan="1" rowspan="1" style="text-align: right;">Reference</td>
+ <td colspan="1" rowspan="1"/>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>ProcessingUnit</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>source</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>accessElements</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>HwAccessElement</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>TaskScheduler</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>child</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>parentAssociation</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>SchedulerAssociation</code>
+ </td>
+ </tr>
+ </table>
+ <p>The following container references are a special case. Because of the nested structure of sub elements the access to a dedicated container object is computed by traversing multiple eContainer references.</p>
+ <table>
+ <tr>
+ <td colspan="1" rowspan="1"/>
+ <td colspan="1" rowspan="1">Container reference (read only)</td>
+ <td colspan="1" rowspan="1" style="text-align: right;">Containment reference</td>
+ <td colspan="1" rowspan="1"/>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>Runnable</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>containingRunnable</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>runnableItems ...</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>RunnableItem</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>Process</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>containingProcess</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>callGraph ...</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>CallSequenceItem</code>
+ </td>
+ </tr>
+ </table>
+
+
+<h4><a id="section4.6.4.2"></a>References (via inverse index)</h4>
+ <p>The inverse index allows easier and faster navigation, at the expense of greater memory consumption.
+ <br>The index is built on demand.
+ </p>
+ <p>The data model has some intermediate objects to express the call of a runnable or the access to a label.
+ <br>These objects are containments of
+ <i>Task</i> or
+ <i>Runnable</i> and can have additional attributes. The back pointers support an easy way to answer queries like "Which tasks call runnable x ?" or "Which functions read label y ?".
+ </p>
+ <table>
+ <tr>
+ <td colspan="1" rowspan="1"/>
+ <td colspan="1" rowspan="1">Back pointer (read only)</td>
+ <td colspan="1" rowspan="1" style="text-align: right;">Reference</td>
+ <td colspan="1" rowspan="1"/>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>LabelAccess</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>labelAccesses</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>data</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>Label</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>ChannelAccess</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>channelAccesses</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>data</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>Channel</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>SemaphoreAccess</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>semaphoreAccesses</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>semaphore</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>Semaphore</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>TaskRunnableCall</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>taskRunnableCalls</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>runnable</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>Runnable</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>RunnableCall</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>runnableCalls</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>runnable</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>Runnable</code>
+ </td>
+ </tr>
+ </table>
+ <p>All elements with memory representation (e.g. labels, runnables) can be mapped to a memory via a MemoryMapping. The back pointers provides a list of all mapping elements that refer to a specific memory or a specific MemoryElement.</p>
+ <table>
+ <tr>
+ <td colspan="1" rowspan="1"/>
+ <td colspan="1" rowspan="1">Back pointer (read only)</td>
+ <td colspan="1" rowspan="1" style="text-align: right;">Reference</td>
+ <td colspan="1" rowspan="1"/>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>MemoryMapping</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>mappings</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>memory</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>Memory</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>MemoryMapping</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>mappings</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>abstractElement</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>AbstractMemoryElement</code>
+ </td>
+ </tr>
+ </table>
+ <p>Labels and runnables can be located in exactly one section. The back pointer provides a list of all elements that are assigned to a specific section.</p>
+ <table>
+ <tr>
+ <td colspan="1" rowspan="1"/>
+ <td colspan="1" rowspan="1">Back pointer (read only)</td>
+ <td colspan="1" rowspan="1" style="text-align: right;">Reference</td>
+ <td colspan="1" rowspan="1"/>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>Label</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>labels</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>section</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>Section</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>Runnable</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>runnables</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>section</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>Section</code>
+ </td>
+ </tr>
+ </table>
+ <p>CustomEvent and InterProcessStimulus can have explicit triggers. The pointer is established from CustomEventTrigger and InterProcessTrigger. The back pointers provides easier access to the triggering runnables / processes.</p>
+ <table>
+ <tr>
+ <td colspan="1" rowspan="1"/>
+ <td colspan="1" rowspan="1">Back pointer (read only)</td>
+ <td colspan="1" rowspan="1" style="text-align: right;">Reference</td>
+ <td colspan="1" rowspan="1"/>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>CustomEventTrigger</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>explicitTriggers</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>event</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>CustomEvent</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>InterProcessTrigger</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>explicitTriggers</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>stimulus</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>InterProcessStimulus</code>
+ </td>
+ </tr>
+ </table>
+ <p>Components define lists of included software elements (e.g. labels, runnables, semaphores). The back pointer provides access to all referring components.</p>
+ <table>
+ <tr>
+ <td colspan="1" rowspan="1"/>
+ <td colspan="1" rowspan="1">Back pointer (read only)</td>
+ <td colspan="1" rowspan="1" style="text-align: right;">Reference</td>
+ <td colspan="1" rowspan="1"/>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>Component</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>referringComponents</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>labels</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>Label</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>Component</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>referringComponents</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>runnables</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>Runnable</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>Component</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>referringComponents</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>tasks</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>AbstractProcess</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>Component</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>referringComponents</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>semaphores</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>Semaphore</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>Component</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>referringComponents</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>osEvents</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>OsEvent</code>
+ </td>
+ </tr>
+ </table>
+ <p>Allocations refer to a scheduler (Scheduler, TaskScheduler, InterruptController). The back pointer provides access from the scheduler to the allocations.</p>
+ <table>
+ <tr>
+ <td colspan="1" rowspan="1"/>
+ <td colspan="1" rowspan="1">Back pointer (read only)</td>
+ <td colspan="1" rowspan="1" style="text-align: right;">Reference</td>
+ <td colspan="1" rowspan="1"/>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>SchedulerAllocation</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>schedulerAllocations</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>scheduler</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>Scheduler</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>RunnableAllocation</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>runnableAllocations</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>scheduler</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>Scheduler</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>TaskAllocation</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>taskAllocations</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>scheduler</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>TaskScheduler</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>ISRAllocation</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>isrAllocations</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>controller</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>InterruptController</code>
+ </td>
+ </tr>
+ </table>
+ <p>Some other useful back references.</p>
+ <table>
+ <tr>
+ <td colspan="1" rowspan="1"/>
+ <td colspan="1" rowspan="1">Back pointer (read only)</td>
+ <td colspan="1" rowspan="1" style="text-align: right;">Reference</td>
+ <td colspan="1" rowspan="1"/>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>Process</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>affectedProcesses</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>stimuli</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>Stimulus</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>ITaggable</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>taggedObjects</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>tags</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>Tag</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">
+ <code>SchedulerAssociation</code>
+ </td>
+ <td colspan="1" rowspan="1" style="color:green">←
+ <strong>childAssociations</strong>
+ </td>
+ <td colspan="1" rowspan="1" style="text-align: right;">
+ <strong>parent</strong> →
+ </td>
+ <td colspan="1" rowspan="1">
+ <code>TaskScheduler</code>
+ </td>
+ </tr>
+ </table>
+
+
+<h4><a id="section4.6.4.3"></a>Implementation</h4>
+ <p>
+ <b>Xcore:</b>
+ </p>
+ <p>A derived back pointer is computed by
+ <span>
+ <strong>AmaltheaIndex.getInverseReferences(...)</strong>
+ </span>.
+ <br>The visiblity in the generated code and in the user interface is controlled by
+ <span>
+ <strong>@GenModel</strong>
+ </span> annotations.
+ </p>
+ <p>Example</p>
+ <pre xml:space="preserve"><code>class Runnable extends AbstractMemoryElement
+{ ...
+ // back pointer (readonly)
+ @GenModel(documentation="&lt;p&gt;&lt;b&gt;Returns an &lt;em&gt;immutable&lt;/em&gt; list of callers (TaskRunnableCalls).&lt;/b&gt;&lt;/p&gt;")
+ @GenModel(propertyCategory="Read only", propertyFilterFlags="org.eclipse.ui.views.properties.expert")
+ refers transient readonly volatile derived TaskRunnableCall[] taskRunnableCalls get {
+ AmaltheaIndex.getInverseReferences(this,
+ AmaltheaPackage.eINSTANCE.runnable_TaskRunnableCalls,
+ AmaltheaPackage.eINSTANCE.taskRunnableCall_Runnable
+ )
+ }
+</code></pre>
+ <p><!-- --></p>
+
+
+<h4><a id="section4.6.4.4"></a>User Interface</h4>
+ <p>
+ <img src="images/model_transient_backpointer_ui.png"/>
+ </p>
+
+
+<h2><a id="section4.7">4.7 </a>AMALTHEA Model Definition</h2>
+
+
+<h3><a id="section4.7.1">4.7.1 </a>Ecore</h3>
+ <p>The AMALTHEA model is specified with the Eclipse Modeling Framework (EMF). Eclipse/Java developers can use the AMALTHEA Platform where the generated Java classes of the model are included. The underlying Xcore definition of the model is part of the model plugin.</p>
+ <p>The derived
+ <strong>Ecore files</strong> can be found
+ <a href="zip/ecore-definitions.zip">here</a>.
+ </p>
+
+
+<h3><a id="section4.7.2">4.7.2 </a>XML Schema Definition (XSD)</h3>
+ <p>For developers that are not using Java or Eclipse, the specification is also provided in the XSD format. The
+ <strong>XSD files</strong> can be found
+ <a href="zip/xml-schema-definitions.zip">here</a>.
+ </p>
+ <p>The AMALTHEA model references an external model definitions:
+ <br>- The Ecore model (http://www.eclipse.org/emf/2002/Ecore)
+ </p>
+ <p>The XSD file for the Ecore model can be found on the
+ <a href="https://download.eclipse.org/modeling/emf/emf/builds/index.html">Eclipse EMF download page</a>
+ <br>Download the
+ <i>Models</i> package from
+ <i>Latest Releases</i>. The download contains a folder "org.eclipse.emf.ecore_*". This folder contains the XSD schema for Ecore.
+ </p>
+ <p>---</p>
+ <p>The Franca model has no longer a direct connection but still can be used to describe interfaces.</p>
+ <p>Franca is only available as Ecore file. To generate an XSD schema open the AMALTHEA Tool Platform and do the following steps:</p>
+ <p>Open the Plug-Ins View by selecting
+ <i>Window -&gt; Show View -&gt; Other</i> and select Plug-Ins View in the folder Plug-in Development:
+ </p>
+ <p>
+ <img src="images/show_plugins_view.png"/>
+ </p>
+ <p>Select the plug-in
+ <i>org.franca.core</i> and import it as
+ <i>Binary Project</i>:
+ </p>
+ <p>
+ <img src="images/import_franca-core.png"/>
+ </p>
+ <p>Open the model folder in the imported project, do a right click on the "franca.genmodel" file and select "Export Model".</p>
+ <p>
+ <img src="images/export_model.png"/>
+ </p>
+ <p>Select the entry "XML Schema for XMI" in the first wizard page.</p>
+ <p>
+ <img src="images/export_wizard1.png"/>
+ </p>
+ <p>Navigate to the last wizard page, select "org.franca.core.franca" and click finish.</p>
+ <p>
+ <img src="images/export_wizard2.png"/>
+ </p>
+ <p>Now there the file "francaXMI.xsd" in the model folder.</p>
+
+
+<h2><a id="section4.8">4.8 </a>AMALTHEA Trace Database</h2>
+ <p>The AMALTHEA Trace Database stores traces in a way that – especially for graphical user interfaces – information can be extracted efficiently.</p>
+
+
+<h3><a id="section4.8.1">4.8.1 </a>General information</h3>
+ <p>The Database is stored as
+ <a href="http://www.sqlite.org/">SQLite Database</a> with extension
+ <strong>.atdb</strong>.
+ <br>All numbers are stored as integer values.
+ </p>
+
+
+<h3><a id="section4.8.2">4.8.2 </a>Database structure</h3>
+ <p>The Database contains a mixture of statically and dynamically defined tables, which are described in more detail below:</p>
+ <ul>
+ <li>Static
+ <ul>
+ <li>MetaInformation</li>
+ <li>Entity</li>
+ <li>EntityInstance</li>
+ <li>EntitySource </li>
+ <li>EntityType</li>
+ <li>EventType</li>
+ </ul>
+ </li>
+ <li>Dynamic
+ <ul>
+ <li>EventTable</li>
+ </ul>
+ </li>
+ </ul>
+ <p>
+ <img src="images/atdb_erm_model.png"/>
+ </p>
+
+
+<h4><a id="section4.8.2.1"></a>MetaInformation</h4>
+ <p>MetaInformation contains a simple key-value list of information about the Trace:</p>
+ <ul>
+ <li>Fields
+ <ul>
+ <li>Name: Text – Primary Key</li>
+ <li>Value: Text</li>
+ </ul>
+ </li>
+ </ul>
+ <p>By now, the following list of keys is defined:</p>
+ <ul>
+ <li>
+ <strong>db_version</strong>: version of the AMALTHEA Trace Database scheme with syntax "v#.#.#". Current version is "v0.2.0"
+ </li>
+ <li>
+ <strong>events_written</strong>: The amount of events stored in the database
+ </li>
+ <li>
+ <strong>input</strong>: path to the file, from which the information was produced
+ </li>
+ <li>
+ <strong>time_base</strong>: The base time in which time-values are stored
+ </li>
+ </ul>
+
+
+<h4><a id="section4.8.2.2"></a>Entity</h4>
+ <p>Entity contains information about the Entities used in the database.</p>
+ <ul>
+ <li>Fields
+ <ul>
+ <li>Id: Number – Primary Key</li>
+ <li>Name: Text -
+ <strong>Case-Sensitive</strong> Unique
+ </li>
+ <li>EntityType: Number – 1:n Reference to EntityType-Table</li>
+ <li>HasEvents: Number – possible values
+ <ul>
+ <li>1: Events for that Entity were produced</li>
+ <li>
+ <em>null</em>: No Events for that Entity were produced
+ </li>
+ </ul>
+ </li>
+ <li>EventTableName: Text – The name of the table in which, the events for that entity are stored</li>
+ </ul>
+ </li>
+ </ul>
+
+
+<h4><a id="section4.8.2.3"></a>EntityType</h4>
+ <p>EntityType contains information about the EntityTypes used in the database.</p>
+ <ul>
+ <li>Fields
+ <ul>
+ <li>Id: Number – Primary Key</li>
+ <li>Name: Text</li>
+ </ul>
+ </li>
+ </ul>
+ <p>By now, the following EntityTypes are defined:</p>
+ <ul>
+ <li>Core</li>
+ <li>EventChain</li>
+ <li>Interrupt</li>
+ <li>InstructionBlock</li>
+ <li>Process</li>
+ <li>Runnable</li>
+ <li>Scheduler</li>
+ <li>SemaphoreAccess</li>
+ <li>Semaphore</li>
+ <li>Signal</li>
+ <li>Stimulus</li>
+ <li>Task</li>
+ </ul>
+
+
+<h4><a id="section4.8.2.4"></a>EventType</h4>
+ <ul>
+ <li>Fields
+ <ul>
+ <li>Id: Number – Primary Key</li>
+ <li>Name: Text</li>
+ </ul>
+ </li>
+ </ul>
+ <p>The list of EventTypes which may occur can be retrieved from "AMALTHEA_BTF_Specification".</p>
+
+
+<h4><a id="section4.8.2.5"></a>EntitySource</h4>
+ <p>EntitySource contains information about which Entity has events caused by which other Entities.</p>
+ <ul>
+ <li>Fields
+ <ul>
+ <li>EntityId: Number – Primary Key; EntityId references the Entity events occurred for</li>
+ <li>SourceEntityId: Number – Primary Key; SourceId references the Entity, which caused the event</li>
+ </ul>
+ </li>
+ </ul>
+
+
+<h4><a id="section4.8.2.6"></a>EntityInstance</h4>
+ <p>EntityInstance contains information about the time span an instance of an entity was active.</p>
+ <ul>
+ <li>Fields
+ <ul>
+ <li>Id: Number – Primary Key</li>
+ <li>EntityId: Number – Reference to an entity</li>
+ <li>EntityInstanceId: Number – Instance number for that entity</li>
+ <li>TimeFrom: Number – Start-Time of the instance</li>
+ <li>TimeTo: Number – End-Time of the instance</li>
+ </ul>
+ </li>
+ </ul>
+
+
+<h4><a id="section4.8.2.7"></a>EventTables</h4>
+ <p>There is a dynamic amount of EventTables. An EventTable contains events of 1 or more entities. The information which entity is part of which EventTable is stored in Entity-Table.</p>
+ <ul>
+ <li>Fields
+ <ul>
+ <li>Id: Number – Primary Key, ascending id-number for each EventTable</li>
+ <li>TimeStamp: Number – Time at which the event occurred in base_unit defined at MetaInformation</li>
+ <li>Remainder: Number – Time modulo 1000 to get a more precise value in cases it is required</li>
+ <li>SQCNR: Number – A strictly ascending sequential number telling the order of event at same time stamp</li>
+ <li>EntityId: Number – Reference to entity, for which the event occurred</li>
+ <li>EntityInstanceId: Number – Instance of the entity</li>
+ <li>SourceEntityId: Number – Reference to entity, which caused the event </li>
+ <li>SourceEntityInstanceId: Number – Instance of the source entity</li>
+ <li>EventTypeId: Number – Reference to EventType</li>
+ <li>Value: String – Additional unstructured data for an event like e.g. the written value in case of a Signal Write event</li>
+ </ul>
+ </li>
+ </ul>
+</article>
+
+
+<article>
+<h1><a id="section5">5 </a>Release Notes</h1>
+
+
+<h2><a id="section5.1">5.1 </a>Eclipse APP4MC 0.9.3 (Jan 2019)</h2>
+ <p>Model handling</p>
+ <ul>
+ <li>Model migration support (0.9.2 -&gt; 0.9.3)</li>
+ <li>Optimized model search</li>
+ </ul>
+ <p>Model changes</p>
+ <ul>
+ <li>Introduced "Ticks" as base concept for required computation effort</li>
+ <li>Simplified "Execution Needs" (no specific entries for different processing units)</li>
+ <li>Reworked distributions (discrete, continuous, time) without generics</li>
+ </ul>
+ <p>
+ <em>For details see
+ <a href="https://projects.eclipse.org/projects/technology.app4mc/releases/0.9.3/bugs">Release 0.9.3 issues</a>
+ </em>
+ </p>
+
+
+<h2><a id="section5.2">5.2 </a>Eclipse APP4MC 0.9.2 (Oct 2018)</h2>
+ <p>Model handling</p>
+ <ul>
+ <li>Model migration support (0.9.1 -&gt; 0.9.2)</li>
+ <li>New model search dialog</li>
+ <li>New model builders (with a Groovy-like builder pattern)</li>
+ </ul>
+ <p>Model changes</p>
+ <ul>
+ <li>Small extensions in the hardware model</li>
+ </ul>
+ <p>
+ <em>For details see
+ <a href="https://projects.eclipse.org/projects/technology.app4mc/releases/0.9.2/bugs">Release 0.9.2 issues</a>
+ </em>
+ </p>
+
+
+<h2><a id="section5.3">5.3 </a>Eclipse APP4MC 0.9.1 (Jul 2018)</h2>
+ <p>General</p>
+ <ul>
+ <li>New Eclipse Oxygen.3a based product (compatible with Java 8, Java 9 and Java 10)</li>
+ <li>License change from EPL-1.0 to EPL-2.0</li>
+ </ul>
+ <p>Model handling</p>
+ <ul>
+ <li>Model migration support (0.9.0 -&gt; 0.9.1)</li>
+ <li>New implementation of transient back references</li>
+ <li>Unified approach for fast name search and mass delete</li>
+ <li>Updated model utilities</li>
+ </ul>
+ <p>Model changes</p>
+ <ul>
+ <li>New concept of DataDependency (to describe potential data dependencies)</li>
+ <li>New possibility to specify RunnableParameters and CallArguments</li>
+ </ul>
+
+
+<h2><a id="section5.4">5.4 </a>Eclipse APP4MC 0.9.0 (Apr 2018)</h2>
+ <p>Model handling</p>
+ <ul>
+ <li>Model migration support (0.8.3 -&gt; 0.9.0)</li>
+ <li>Updated model utilities</li>
+ </ul>
+ <p>Model changes</p>
+ <ul>
+ <li>
+ <strong>New hardware model</strong>
+ </li>
+ <li>New concept of ExecutionNeed (replaces the former RunnableInstructions)</li>
+ </ul>
+ <i>Note: This is the first implementation of the new hardware model. It will be extended in the next version and (minor) changes are expected</i>.
+
+
+<h2><a id="section5.5">5.5 </a>Eclipse APP4MC 0.8.3 (Jan 2018)</h2>
+ <p>General</p>
+ <ul>
+ <li>New Eclipse Neon.3 based product</li>
+ </ul>
+ <p>Model handling</p>
+ <ul>
+ <li>Model migration support (0.8.2 -&gt; 0.8.3)</li>
+ <li>Updated model utilities</li>
+ </ul>
+ <p>Model changes</p>
+ <ul>
+ <li>New mode conditions (logical AND)</li>
+ <li>New timing requirement (end to start)</li>
+ <li>Reworked Stimuli definitions</li>
+ <li>New reference to port for client server and sender receiver communication</li>
+ </ul>
+ <p>
+ <em>For details see
+ <a href="https://projects.eclipse.org/projects/technology.app4mc/releases/0.8.3/bugs">Release 0.8.3 issues</a>
+ </em>
+ </p>
+
+
+<h2><a id="section5.6">5.6 </a>Eclipse APP4MC 0.8.2 (Oct 2017)</h2>
+ <p>General</p>
+ <ul>
+ <li>Model changes (extensions)</li>
+ <li>New graphical editors (based on Sirius)</li>
+ </ul>
+ <p>Model handling</p>
+ <ul>
+ <li>Model migration support (0.8.1 -&gt; 0.8.2)</li>
+ <li>New model utilities</li>
+ </ul>
+ <p>Model changes</p>
+ <ul>
+ <li>New runnable item to get the result of an asynchronous request</li>
+ <li>New possibility to specify the label access implementation</li>
+ <li>New measurement model</li>
+ <li>New component event</li>
+ </ul>
+ <p>
+ <em>For details see
+ <a href="https://projects.eclipse.org/projects/technology.app4mc/releases/0.8.2/bugs">Release 0.8.2 issues</a>
+ </em>
+ </p>
+
+
+<h2><a id="section5.7">5.7 </a>Eclipse APP4MC 0.8.1 (Jul 2017)</h2>
+ <p>General</p>
+ <ul>
+ <li>Model changes (extension and harmonization)</li>
+ <li>Improved model handling</li>
+ <li>New tooling: EMF Graphical Viewer</li>
+ </ul>
+ <p>Model handling</p>
+ <ul>
+ <li>Model migration support (0.8.0 -&gt; 0.8.1)</li>
+ <li>New support for compressed model files (zip)</li>
+ <li>More back references</li>
+ </ul>
+ <p>Model changes</p>
+ <ul>
+ <li>Extended Schedulers (hierarchical, reservation based)</li>
+ <li>Extend Semaphore definition (types)</li>
+ <li>Consistent naming of Triggers, Activations and Stimuli</li>
+ <li>New elements for data driven computation (conditions, triggers)</li>
+ </ul>
+ <p>
+ <em>For details see
+ <a href="https://projects.eclipse.org/projects/technology.app4mc/releases/0.8.1/bugs">Release 0.8.1 issues</a>
+ </em>
+ </p>
+
+
+<h2><a id="section5.8">5.8 </a>Eclipse APP4MC 0.8.0 (Apr 2017)</h2>
+ <p>General</p>
+ <ul>
+ <li>Model changes (mainly to simplify handling)</li>
+ <li>Improved tooling: model utilities</li>
+ <li>New UI components: Multicore Wizard, Task-Visualizer (draft version)</li>
+ </ul>
+ <p>Model handling</p>
+ <ul>
+ <li>Model migration support (0.7.2 -&gt; 0.8.0)</li>
+ </ul>
+ <p>Model changes</p>
+ <ul>
+ <li>Simplified model handling: Mapping Model, Modes, Time</li>
+ <li>New classifiers to annotate Core and Memory</li>
+ <li>Reworked Property Constraints</li>
+ <li>Extended OS Overheads</li>
+ </ul>
+ <p>
+ <em>For details see
+ <a href="https://projects.eclipse.org/projects/technology.app4mc/releases/0.8.0/bugs">Release 0.8.0 issues</a>
+ </em>
+ </p>
+
+
+<h2><a id="section5.9">5.9 </a>Eclipse APP4MC 0.7.2 (Jan 2017)</h2>
+ <p>General</p>
+ <ul>
+ <li>Smaller product definition (optional parts can be installed via update sites)</li>
+ <li>Harmonized model API</li>
+ </ul>
+ <p>Model handling</p>
+ <ul>
+ <li>Model migration support (0.7.1 -&gt; 0.7.2)</li>
+ <li>Improved back references</li>
+ </ul>
+ <p>Model changes</p>
+ <ul>
+ <li>New core-specific runtimes (instructions) for runnables</li>
+ <li>New model elements for streaming communication (Channels)*</li>
+ <li>New Transmission Policy for communication (e.g. label accesses) </li>
+ <li>New Event-based Stimulus</li>
+ <li>New Data Consistency needs</li>
+ <li>New Counters for InterProcessActivation and EventStimulus</li>
+ <li>Harmonized model elements to describe probability</li>
+ <li>Storage of common elements (e.g. tags) in one central location</li>
+ </ul>
+ <p>Bug fixes / Improvements</p>
+ <ul>
+ <li>Model migration (ISR call graph, Section names, cross document references)</li>
+ <li>Back references (Memory -&gt; Mapping, Scheduler -&gt; CoreAllocation)</li>
+ </ul>
+ <p>Documentation</p>
+ <ul>
+ <li>New model elements: Physical memory sections, Channels</li>
+ <li>New examples</li>
+ </ul>* =
+ <i>Experimental feature (first modeling attempt that may change in future versions)</i>.
+ <p>
+ <em>For details see
+ <a href="https://projects.eclipse.org/projects/technology.app4mc/releases/0.7.2/bugs">Release 0.7.2 issues</a>
+ </em>
+ </p>
+
+
+<h2><a id="section5.10">5.10 </a>Eclipse APP4MC 0.7.1 (Oct 2016)</h2>
+ <p>Model handling</p>
+ <ul>
+ <li>Model migration support (0.7.0 -&gt; 0.7.1)</li>
+ <li>Improved update of opposite references</li>
+ <li>Storage of default values is enabled by default</li>
+ </ul>
+ <p>Model changes</p>
+ <ul>
+ <li>New distribution "Beta Distribution"</li>
+ <li>New stimuli type "Synthetic" (to "replay" activations from a hardware trace)</li>
+ <li>New DataStabilityGroup</li>
+ <li>Introduced SamplingType as new attribute for Deviation</li>
+ <li>Introduced physical memory sections (PhysicalSectionConstraint, PhysicalSectionMapping)</li>
+ <li>Reworked AffinityConstraints (removed Scheduler constraints, added Data constraints)</li>
+ <li>Reworked Event / Event-Chain Constraints</li>
+ <li>Reworked RunnableSequencingConstraints</li>
+ <li>New types for DataSizes and DataRates</li>
+ </ul>
+ <p>
+ <em>For details see
+ <a href="https://bugs.eclipse.org/bugs/buglist.cgi?product=App4mc&amp;target_milestone=0.7.1">Bugzilla entries for 0.7.1</a>
+ </em>
+ </p>
+
+
+<h2><a id="section5.11">5.11 </a>Eclipse APP4MC 0.7.0 (Jul 2016)</h2>
+ <p>Model handling</p>
+ <ul>
+ <li>Model migration support (itea1.1.0 -&gt; itea1.1.1 -&gt; 0.7.0)</li>
+ <li>Simplified model creation wizard</li>
+ <li>One consolidated model</li>
+ <li>Additional opposite references (transient) to ease model navigation</li>
+ <li>Scripting support for workflows (based on Eclipse EASE)</li>
+ </ul>
+ <p>Model changes</p>
+ <ul>
+ <li>Removed 'attributes' and 'features' from hardware model</li>
+ <li>Replaced generic
+ <i>ProcessAllocation</i> with specific
+ <i>ISRAllocation</i> and
+ <i>TaskAllocation</i>
+ </li>
+ <li>New
+ <i>BigInteger</i> values for
+ <i>CustomAttributes</i>
+ </li>
+ <li>Some renamed classes and attributes (details in the help)</li>
+ </ul>
+ <p>Model structure</p>
+ <ul>
+ <li>Removed direct dependency to Franca (replaced by implicit reference by interface name)</li>
+ </ul>
+ <p>Documentation</p>
+ <ul>
+ <li>Updated model documentation / class diagrams</li>
+ <li>New developer guide regarding Model Migration Framework</li>
+ <li>New developer guide regarding Workflows</li>
+ </ul>
+
+
+<h2><a id="section5.12">5.12 </a>AMALTHEA 1.1.1 (Oct 2015)</h2>
+ <p>Model handling</p>
+ <ul>
+ <li>Changed serialized model references to
+ <i>name based references</i>
+ </li>
+ <li>Restricted
+ <i>model scope</i> to surrounding folder (without sub folders)
+ </li>
+ </ul>
+ <p>Model changes</p>
+ <ul>
+ <li>Added
+ <i>HwAccessPath</i> to hardware model to describe an access path either by using latencies or available hardware elements
+ </li>
+ <li>Added
+ <i>Modes</i> to common model and
+ <i>ModeLabels</i> to software model to describe alternative execution paths of tasks
+ </li>
+ <li>Added
+ <i>isBuffered</i> attribute to Labels and LabelAccesses to describe data consistency requirements
+ </li>
+ <li>Added
+ <i>Requirements</i> to constraints model to describe quality requirements for the dynamic architecture
+ </li>
+ <li>Added
+ <i>DataCoherencyGroups</i> to constraints model to describe data coherency requirements
+ </li>
+ <li>Added
+ <i>ProcessChains</i> to software model to describe data processing over multiple tasks
+ </li>
+ </ul>
+ <ul>
+ <li>Switched validations to Sphinx check based and added different model validations</li>
+ <li>New values for
+ <i>CustomAttributes</i> with
+ <i>Time</i> and
+ <i>SignedTime</i>
+ </li>
+ </ul>
+ <p>Features</p>
+ <ul>
+ <li>New
+ <i>AMALTHEA Trace Database (ATDB) Import</i> to create an AMALTHEA model from a trace
+ </li>
+ </ul>
+ <p>Documentation</p>
+ <ul>
+ <li>Updated model documentation / class diagrams</li>
+ <li>Updated user guide documentation to include steps for create a new AMALTHEA model with wizard</li>
+ <li>Updated user guide documentation to include a tutorial for using the AMALTHEA Trace Database (ATDB) Import</li>
+ </ul>
+
+
+<h2><a id="section5.13">5.13 </a>AMALTHEA 1.1.0 (Aug 2015)</h2>
+ <ul>
+ <li>Updated OS model to include now possibility to describe the operating system in more detail, like OS overhead</li>
+ <li>Added Event Sets to Event model to allow the definition of an unspecified order for events in an event chain</li>
+ <li>Added Data Age Constraints to constraints model</li>
+ <li>Added Label Value Lists to Stimulus model to enable and disable stimuli by label values or to set label values by the activation of a stimulus </li>
+ <li>Added Arrival Curve Stimulus to Stimulus model </li>
+ <li>Added Terminate Task for Call Graph in Software model to allow the termination of a task within a switch</li>
+ <li>Added a address attribute in the Mapping model to allow the definition of a memory address in the memory mapping</li>
+ <li>Added CustomAttributes to all model AMALTHEA model elements</li>
+ <li>Added first version of OSLC adapter</li>
+ <li>Replace of attribute read/write in LabelAccessStatistic with value and readCacheMisses with cacheMisses</li>
+ <li>Added documentation for Counter element in SW model</li>
+ </ul>
+</article>
+
+
+<article>
+<h1><a id="section6">6 </a>Roadmap</h1>
+ <p>Current topics:</p>
+ <ul>
+ <li>Model changes (e.g. for heterogeneous hardware)</li>
+ <li>Model utilities</li>
+ <li>Interactive help (visualization of model and meta model structure)</li>
+ </ul>
+ <p>All new releases are provided by
+ <a href="https://projects.eclipse.org/projects/technology.app4mc">Eclipse APP4MC</a>.
+ </p>
+ <p>For details see:</p>
+ <ul>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/buglist.cgi?product=App4mc&amp;target_milestone=0.9.3">Bugzilla entries for version 0.9.3</a>
+ </li>
+ </ul>
+</article>
+<!-- - - - - - - - - - - Articles - - - - - - - - - - -->
+ </div>
+ </div>
+
+</body>
+
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/AmaltheaIndex.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/AmaltheaIndex.html
new file mode 100644
index 0000000..b31b767
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/AmaltheaIndex.html
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:16 CET 2019 -->
+<title>AmaltheaIndex</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model</div>
+<h2 title="Class AmaltheaIndex" class="title">Class AmaltheaIndex</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>AmaltheaIndex</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public final class <span class="typeNameLabel">AmaltheaIndex</span>
+extends Object</pre>
+<div class="block">This class provides static methods for efficient model navigation, search and delete.
+ <p>
+ An <code>AmaltheaCrossReferenceAdapter</code> is created and attached to the root context of the model.
+ The adapter maintains an index that allows fast access to inverse references and an index based on object name.
+ <p>
+ The method <a href="#getInverseReferences-org.eclipse.emf.ecore.EObject-org.eclipse.emf.ecore.EReference-java.util.Set-"><code>getInverseReferences</code></a> is called from several
+ generated model objects to compute inverse transient references based on the incoming references.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#delete-org.eclipse.emf.ecore.EObject-">delete</a></span>(EObject&nbsp;eObject)</code>
+<div class="block">Deletes the object from its <code>containing</code> resource
+ and/or its <code>containing</code> object as well as from any
+ other feature that references it within the enclosing root context
+ (resource set, resource or root object).</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#deleteAll-java.util.Collection-">deleteAll</a></span>(Collection&lt;? extends EObject&gt;&nbsp;eObjects)</code>
+<div class="block">Deletes the objects from their <code>containing</code> resource
+ and/or their <code>containing</code> object as well as from any
+ other feature that references it within the enclosing root context
+ (resource set, resource or root object).</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#deleteAll-java.util.Collection-boolean-">deleteAll</a></span>(Collection&lt;? extends EObject&gt;&nbsp;eObjects,
+ boolean&nbsp;recursive)</code>
+<div class="block">Deletes the objects from their <code>containing</code> resource
+ and/or their <code>containing</code> object as well as from any
+ other feature that references it within the enclosing root context
+ (resource set, resource or root object).</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static &lt;T extends INamed&gt;<br>Set&lt;? extends T&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getElements-org.eclipse.emf.common.notify.Notifier-java.util.regex.Pattern-java.lang.Class-">getElements</a></span>(Notifier&nbsp;context,
+ Pattern&nbsp;namePattern,
+ Class&lt;T&gt;&nbsp;targetClass)</code>
+<div class="block">Finds elements by name pattern and class</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static &lt;T extends INamed&gt;<br>Set&lt;? extends T&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getElements-org.eclipse.emf.common.notify.Notifier-java.lang.String-java.lang.Class-">getElements</a></span>(Notifier&nbsp;context,
+ String&nbsp;name,
+ Class&lt;T&gt;&nbsp;targetClass)</code>
+<div class="block">Finds elements by name and class</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;EList&lt;T&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getInverseReferences-org.eclipse.emf.ecore.EObject-org.eclipse.emf.ecore.EReference-java.util.Set-">getInverseReferences</a></span>(EObject&nbsp;eObject,
+ EReference&nbsp;resultEReference,
+ Set&lt;EReference&gt;&nbsp;targetEReferences)</code>
+<div class="block">Computes a list of objects that refer to an EObject via dedicated references.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getInverseReferences-org.eclipse.emf.ecore.EObject-org.eclipse.emf.ecore.EReference-java.util.Set-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInverseReferences</h4>
+<pre>public static&nbsp;&lt;T&gt;&nbsp;EList&lt;T&gt;&nbsp;getInverseReferences(EObject&nbsp;eObject,
+ EReference&nbsp;resultEReference,
+ Set&lt;EReference&gt;&nbsp;targetEReferences)</pre>
+<div class="block">Computes a list of objects that refer to an EObject via dedicated references.
+ <p>
+ This method is called from several generated model objects to compute
+ an inverse transient reference based on the incoming references.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>eObject</code> - object that implements a derived transient opposite reference</dd>
+<dd><code>resultEReference</code> - opposite reference definition (resulting objects are computed)</dd>
+<dd><code>targetEReferences</code> - list of incoming references</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>EcoreEList.UnmodifiableEList &lt;T&gt;</dd>
+</dl>
+</li>
+</ul>
+<a name="delete-org.eclipse.emf.ecore.EObject-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre>public static&nbsp;void&nbsp;delete(EObject&nbsp;eObject)</pre>
+<div class="block">Deletes the object from its <code>containing</code> resource
+ and/or its <code>containing</code> object as well as from any
+ other feature that references it within the enclosing root context
+ (resource set, resource or root object). Contained children of the object
+ are similarly removed from any features that reference them.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>eObject</code> - object to delete</dd>
+</dl>
+</li>
+</ul>
+<a name="deleteAll-java.util.Collection-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deleteAll</h4>
+<pre>public static&nbsp;void&nbsp;deleteAll(Collection&lt;? extends EObject&gt;&nbsp;eObjects)</pre>
+<div class="block">Deletes the objects from their <code>containing</code> resource
+ and/or their <code>containing</code> object as well as from any
+ other feature that references it within the enclosing root context
+ (resource set, resource or root object). Contained children of the object
+ are similarly removed from any features that reference them.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>eObjects</code> - objects to delete</dd>
+</dl>
+</li>
+</ul>
+<a name="deleteAll-java.util.Collection-boolean-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deleteAll</h4>
+<pre>public static&nbsp;void&nbsp;deleteAll(Collection&lt;? extends EObject&gt;&nbsp;eObjects,
+ boolean&nbsp;recursive)</pre>
+<div class="block">Deletes the objects from their <code>containing</code> resource
+ and/or their <code>containing</code> object as well as from any
+ other feature that references it within the enclosing root context
+ (resource set, resource or root object).
+ If recursive is true, contained children of the object are similarly removed
+ from any features that reference them.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>eObjects</code> - objects to delete</dd>
+<dd><code>recursive</code> - true: contained children should also be deleted</dd>
+</dl>
+</li>
+</ul>
+<a name="getElements-org.eclipse.emf.common.notify.Notifier-java.lang.String-java.lang.Class-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElements</h4>
+<pre>public static&nbsp;&lt;T extends INamed&gt;&nbsp;Set&lt;? extends T&gt;&nbsp;getElements(Notifier&nbsp;context,
+ String&nbsp;name,
+ Class&lt;T&gt;&nbsp;targetClass)</pre>
+<div class="block">Finds elements by name and class</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - EObject, Resource or ResourceSet</dd>
+<dd><code>name</code> - String</dd>
+<dd><code>targetClass</code> - for example: <code>Label.class</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Set of named objects (IName)</dd>
+</dl>
+</li>
+</ul>
+<a name="getElements-org.eclipse.emf.common.notify.Notifier-java.util.regex.Pattern-java.lang.Class-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getElements</h4>
+<pre>public static&nbsp;&lt;T extends INamed&gt;&nbsp;Set&lt;? extends T&gt;&nbsp;getElements(Notifier&nbsp;context,
+ Pattern&nbsp;namePattern,
+ Class&lt;T&gt;&nbsp;targetClass)</pre>
+<div class="block">Finds elements by name pattern and class</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - EObject, Resource or ResourceSet</dd>
+<dd><code>namePattern</code> - for example: <code>Pattern.compile("Prefix_.*")</code></dd>
+<dd><code>targetClass</code> - for example: <code>Label.class</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Set of named objects (IName)</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/AmaltheaMerger.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/AmaltheaMerger.html
new file mode 100644
index 0000000..99c3375
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/AmaltheaMerger.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:16 CET 2019 -->
+<title>AmaltheaMerger</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model</div>
+<h2 title="Class AmaltheaMerger" class="title">Class AmaltheaMerger</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>AmaltheaMerger</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">AmaltheaMerger</span>
+extends Object</pre>
+<div class="block">This class provides static methods to extend a model with major elements of a second model.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#AmaltheaMerger--">AmaltheaMerger</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#addElements-org.eclipse.app4mc.amalthea.model.Amalthea-java.util.Collection-">addElements</a></span>(Amalthea&nbsp;mainModel,
+ Collection&lt;Amalthea&gt;&nbsp;inputs)</code>
+<div class="block">Add the contained elements of the input models to the main model.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AmaltheaMerger--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AmaltheaMerger</h4>
+<pre>public&nbsp;AmaltheaMerger()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="addElements-org.eclipse.app4mc.amalthea.model.Amalthea-java.util.Collection-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>addElements</h4>
+<pre>public static&nbsp;void&nbsp;addElements(Amalthea&nbsp;mainModel,
+ Collection&lt;Amalthea&gt;&nbsp;inputs)</pre>
+<div class="block">Add the contained elements of the input models to the main model.
+ Only major elements of the model (with their containments) are added.
+ In case of name conflicts the affected elements will be omitted.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mainModel</code> - model that is extended</dd>
+<dd><code>inputs</code> - list of models that contain the additional elements</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/AmaltheaServices.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/AmaltheaServices.html
new file mode 100644
index 0000000..5ff9308
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/AmaltheaServices.html
@@ -0,0 +1,516 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:16 CET 2019 -->
+<title>AmaltheaServices</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model</div>
+<h2 title="Class AmaltheaServices" class="title">Class AmaltheaServices</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>AmaltheaServices</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">AmaltheaServices</span>
+extends Object</pre>
+<div class="block">This class provides static methods that implement operations of the Amalthea EMF model.
+ <p>
+ The methods are called from several generated model objects.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!-- -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static List&lt;TimeUnit&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#TIME_UNIT_LIST">TIME_UNIT_LIST</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#AmaltheaServices--">AmaltheaServices</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#addTime-org.eclipse.app4mc.amalthea.model.Time-org.eclipse.app4mc.amalthea.model.Time-">addTime</a></span>(Time&nbsp;t1,
+ Time&nbsp;t2)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#adjustTimeUnit-org.eclipse.app4mc.amalthea.model.Time-">adjustTimeUnit</a></span>(Time&nbsp;time)</code>
+<div class="block">This method takes a time (in value and unit) and adjusts the TimeUnit
+ so that the value is as small as possible, without losing precision
+ e.g. 1000us is converted to 1ms</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#compareDataRates-org.eclipse.app4mc.amalthea.model.DataRate-org.eclipse.app4mc.amalthea.model.DataRate-">compareDataRates</a></span>(DataRate&nbsp;r1,
+ DataRate&nbsp;r2)</code>
+<div class="block">This method is used to compare DataRate objects on the basis of their values
+ (obtained in bit per second after applying the conversion based on DataRateUnit)</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#compareTimes-org.eclipse.app4mc.amalthea.model.Time-org.eclipse.app4mc.amalthea.model.Time-">compareTimes</a></span>(Time&nbsp;t1,
+ Time&nbsp;t2)</code>
+<div class="block">This method is used to compare Time objects on the basis of their values
+ (obtained in pico seconds after applying the conversion based on TimeUnit)</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static BigInteger</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#convertToBit-org.eclipse.app4mc.amalthea.model.DataSize-">convertToBit</a></span>(DataSize&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static BigInteger</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#convertToBitPerSecond-org.eclipse.app4mc.amalthea.model.DataRate-">convertToBitPerSecond</a></span>(DataRate&nbsp;rate)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static BigDecimal</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#convertToHertz-org.eclipse.app4mc.amalthea.model.Frequency-">convertToHertz</a></span>(Frequency&nbsp;frequency)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static BigDecimal</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#convertToMicroVolt-org.eclipse.app4mc.amalthea.model.Voltage-">convertToMicroVolt</a></span>(Voltage&nbsp;voltage)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static BigInteger</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#convertToPicoSeconds-org.eclipse.app4mc.amalthea.model.Time-">convertToPicoSeconds</a></span>(Time&nbsp;time)</code>
+<div class="block">This method is used to convert the value of Time/TimeObject element's value
+ to BigInteger in Pico Seconds</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#divideTime-org.eclipse.app4mc.amalthea.model.Time-org.eclipse.app4mc.amalthea.model.Time-">divideTime</a></span>(Time&nbsp;t1,
+ Time&nbsp;t2)</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>static EList&lt;HwModule&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getAllModules-org.eclipse.app4mc.amalthea.model.HwStructure-">getAllModules</a></span>(HwStructure&nbsp;struct)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getAverageOfTruncatedNormalDistribution-java.lang.Number-java.lang.Number-double-double-">getAverageOfTruncatedNormalDistribution</a></span>(Number&nbsp;a,
+ Number&nbsp;b,
+ double&nbsp;mean,
+ double&nbsp;sd)</code>
+<div class="block">Computes the average (mean) of the truncated normal distribution
+
+ See <a
+ href="https://en.wikipedia.org/wiki/Truncated_normal_distribution"
+ target="_top">Truncated normal distribution (Wikipedia)</a></div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getAverageOfTruncatedNormalDistribution-org.eclipse.app4mc.amalthea.model.Time-org.eclipse.app4mc.amalthea.model.Time-org.eclipse.app4mc.amalthea.model.Time-org.eclipse.app4mc.amalthea.model.Time-">getAverageOfTruncatedNormalDistribution</a></span>(Time&nbsp;a,
+ Time&nbsp;b,
+ Time&nbsp;mean,
+ Time&nbsp;sd)</code>
+<div class="block">Computes the average (mean) of the truncated normal distribution
+
+ See <a
+ href="https://en.wikipedia.org/wiki/Truncated_normal_distribution"
+ target="_top">Truncated normal distribution (Wikipedia)</a></div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>static &lt;T extends EObject&gt;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getContainerOfType-org.eclipse.emf.ecore.EObject-java.lang.Class-">getContainerOfType</a></span>(EObject&nbsp;object,
+ Class&lt;T&gt;&nbsp;type)</code>&nbsp;</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>static EList&lt;HwPort&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getInnerPorts-org.eclipse.app4mc.amalthea.model.HwStructure-">getInnerPorts</a></span>(HwStructure&nbsp;struct)</code>&nbsp;</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>static EList&lt;QualifiedPort&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getInnerPorts-org.eclipse.app4mc.amalthea.model.ISystem-">getInnerPorts</a></span>(ISystem&nbsp;system)</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#multiply-org.eclipse.app4mc.amalthea.model.Time-double-">multiply</a></span>(Time&nbsp;t1,
+ double&nbsp;value)</code>&nbsp;</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#multiply-org.eclipse.app4mc.amalthea.model.Time-long-">multiply</a></span>(Time&nbsp;t1,
+ long&nbsp;value)</code>&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#subtractTime-org.eclipse.app4mc.amalthea.model.Time-org.eclipse.app4mc.amalthea.model.Time-">subtractTime</a></span>(Time&nbsp;t1,
+ Time&nbsp;t2)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!-- -->
+</a>
+<h3>Field Detail</h3>
+<a name="TIME_UNIT_LIST">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TIME_UNIT_LIST</h4>
+<pre>public static final&nbsp;List&lt;TimeUnit&gt; TIME_UNIT_LIST</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AmaltheaServices--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AmaltheaServices</h4>
+<pre>public&nbsp;AmaltheaServices()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getContainerOfType-org.eclipse.emf.ecore.EObject-java.lang.Class-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getContainerOfType</h4>
+<pre>public static&nbsp;&lt;T extends EObject&gt;&nbsp;T&nbsp;getContainerOfType(EObject&nbsp;object,
+ Class&lt;T&gt;&nbsp;type)</pre>
+</li>
+</ul>
+<a name="convertToBit-org.eclipse.app4mc.amalthea.model.DataSize-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convertToBit</h4>
+<pre>public static&nbsp;BigInteger&nbsp;convertToBit(DataSize&nbsp;size)</pre>
+</li>
+</ul>
+<a name="convertToBitPerSecond-org.eclipse.app4mc.amalthea.model.DataRate-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convertToBitPerSecond</h4>
+<pre>public static&nbsp;BigInteger&nbsp;convertToBitPerSecond(DataRate&nbsp;rate)</pre>
+</li>
+</ul>
+<a name="convertToPicoSeconds-org.eclipse.app4mc.amalthea.model.Time-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convertToPicoSeconds</h4>
+<pre>public static&nbsp;BigInteger&nbsp;convertToPicoSeconds(Time&nbsp;time)</pre>
+<div class="block">This method is used to convert the value of Time/TimeObject element's value
+ to BigInteger in Pico Seconds</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>time</code> - Time object</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>value BigInteger in Pico Seconds</dd>
+</dl>
+</li>
+</ul>
+<a name="convertToHertz-org.eclipse.app4mc.amalthea.model.Frequency-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convertToHertz</h4>
+<pre>public static&nbsp;BigDecimal&nbsp;convertToHertz(Frequency&nbsp;frequency)</pre>
+</li>
+</ul>
+<a name="convertToMicroVolt-org.eclipse.app4mc.amalthea.model.Voltage-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convertToMicroVolt</h4>
+<pre>public static&nbsp;BigDecimal&nbsp;convertToMicroVolt(Voltage&nbsp;voltage)</pre>
+</li>
+</ul>
+<a name="compareTimes-org.eclipse.app4mc.amalthea.model.Time-org.eclipse.app4mc.amalthea.model.Time-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compareTimes</h4>
+<pre>public static&nbsp;int&nbsp;compareTimes(Time&nbsp;t1,
+ Time&nbsp;t2)</pre>
+<div class="block">This method is used to compare Time objects on the basis of their values
+ (obtained in pico seconds after applying the conversion based on TimeUnit)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>t1</code> - Time object</dd>
+<dd><code>t2</code> - Time object</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>-1 ,0 or 1</dd>
+</dl>
+</li>
+</ul>
+<a name="adjustTimeUnit-org.eclipse.app4mc.amalthea.model.Time-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>adjustTimeUnit</h4>
+<pre>public static&nbsp;Time&nbsp;adjustTimeUnit(Time&nbsp;time)</pre>
+<div class="block">This method takes a time (in value and unit) and adjusts the TimeUnit
+ so that the value is as small as possible, without losing precision
+ e.g. 1000us is converted to 1ms</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>time</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new Time with adjusted value and unit</dd>
+</dl>
+</li>
+</ul>
+<a name="addTime-org.eclipse.app4mc.amalthea.model.Time-org.eclipse.app4mc.amalthea.model.Time-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addTime</h4>
+<pre>public static&nbsp;Time&nbsp;addTime(Time&nbsp;t1,
+ Time&nbsp;t2)</pre>
+</li>
+</ul>
+<a name="subtractTime-org.eclipse.app4mc.amalthea.model.Time-org.eclipse.app4mc.amalthea.model.Time-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>subtractTime</h4>
+<pre>public static&nbsp;Time&nbsp;subtractTime(Time&nbsp;t1,
+ Time&nbsp;t2)</pre>
+</li>
+</ul>
+<a name="divideTime-org.eclipse.app4mc.amalthea.model.Time-org.eclipse.app4mc.amalthea.model.Time-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>divideTime</h4>
+<pre>public static&nbsp;double&nbsp;divideTime(Time&nbsp;t1,
+ Time&nbsp;t2)</pre>
+</li>
+</ul>
+<a name="multiply-org.eclipse.app4mc.amalthea.model.Time-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>multiply</h4>
+<pre>public static&nbsp;Time&nbsp;multiply(Time&nbsp;t1,
+ long&nbsp;value)</pre>
+</li>
+</ul>
+<a name="multiply-org.eclipse.app4mc.amalthea.model.Time-double-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>multiply</h4>
+<pre>public static&nbsp;Time&nbsp;multiply(Time&nbsp;t1,
+ double&nbsp;value)</pre>
+</li>
+</ul>
+<a name="getAverageOfTruncatedNormalDistribution-org.eclipse.app4mc.amalthea.model.Time-org.eclipse.app4mc.amalthea.model.Time-org.eclipse.app4mc.amalthea.model.Time-org.eclipse.app4mc.amalthea.model.Time-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAverageOfTruncatedNormalDistribution</h4>
+<pre>public static&nbsp;Time&nbsp;getAverageOfTruncatedNormalDistribution(Time&nbsp;a,
+ Time&nbsp;b,
+ Time&nbsp;mean,
+ Time&nbsp;sd)</pre>
+<div class="block">Computes the average (mean) of the truncated normal distribution
+
+ <p>See <a
+ href="https://en.wikipedia.org/wiki/Truncated_normal_distribution"
+ target="_top">Truncated normal distribution (Wikipedia)</a></p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - lower bound (null = not truncated from below)</dd>
+<dd><code>b</code> - upper bound (null = not truncated from above)</dd>
+<dd><code>mean</code> - mean or expectation of the (unlimited) distribution</dd>
+<dd><code>sd</code> - standard deviation</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Average of the truncated distribution</dd>
+</dl>
+</li>
+</ul>
+<a name="getAverageOfTruncatedNormalDistribution-java.lang.Number-java.lang.Number-double-double-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAverageOfTruncatedNormalDistribution</h4>
+<pre>public static&nbsp;double&nbsp;getAverageOfTruncatedNormalDistribution(Number&nbsp;a,
+ Number&nbsp;b,
+ double&nbsp;mean,
+ double&nbsp;sd)</pre>
+<div class="block">Computes the average (mean) of the truncated normal distribution
+
+ <p>See <a
+ href="https://en.wikipedia.org/wiki/Truncated_normal_distribution"
+ target="_top">Truncated normal distribution (Wikipedia)</a></p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - lower bound (null = not truncated from below)</dd>
+<dd><code>b</code> - upper bound (null = not truncated from above)</dd>
+<dd><code>mean</code> - mean or expectation of the (unlimited) distribution</dd>
+<dd><code>sd</code> - standard deviation</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Average of the truncated distribution</dd>
+</dl>
+</li>
+</ul>
+<a name="compareDataRates-org.eclipse.app4mc.amalthea.model.DataRate-org.eclipse.app4mc.amalthea.model.DataRate-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compareDataRates</h4>
+<pre>public static&nbsp;int&nbsp;compareDataRates(DataRate&nbsp;r1,
+ DataRate&nbsp;r2)</pre>
+<div class="block">This method is used to compare DataRate objects on the basis of their values
+ (obtained in bit per second after applying the conversion based on DataRateUnit)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>r1</code> - DataRate object</dd>
+<dd><code>r2</code> - DataRate object</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>-1 ,0 or 1</dd>
+</dl>
+</li>
+</ul>
+<a name="getInnerPorts-org.eclipse.app4mc.amalthea.model.ISystem-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInnerPorts</h4>
+<pre>public static&nbsp;EList&lt;QualifiedPort&gt;&nbsp;getInnerPorts(ISystem&nbsp;system)</pre>
+</li>
+</ul>
+<a name="getInnerPorts-org.eclipse.app4mc.amalthea.model.HwStructure-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInnerPorts</h4>
+<pre>public static&nbsp;EList&lt;HwPort&gt;&nbsp;getInnerPorts(HwStructure&nbsp;struct)</pre>
+</li>
+</ul>
+<a name="getAllModules-org.eclipse.app4mc.amalthea.model.HwStructure-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getAllModules</h4>
+<pre>public static&nbsp;EList&lt;HwModule&gt;&nbsp;getAllModules(HwStructure&nbsp;struct)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/AmaltheaBuilder.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/AmaltheaBuilder.html
new file mode 100644
index 0000000..caf2e3a
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/AmaltheaBuilder.html
@@ -0,0 +1,326 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>AmaltheaBuilder</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.builder</div>
+<h2 title="Class AmaltheaBuilder" class="title">Class AmaltheaBuilder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>AmaltheaBuilder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">AmaltheaBuilder</span>
+extends Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#AmaltheaBuilder--">AmaltheaBuilder</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>&lt;T extends INamed&gt;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#Z:Z_find-org.eclipse.emf.ecore.EObject-java.lang.Class-java.lang.String-">_find</a></span>(EObject&nbsp;context,
+ Class&lt;T&gt;&nbsp;cl,
+ String&nbsp;name)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>&lt;T extends EObject&gt;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#Z:Z_ref-java.lang.Class-java.lang.String-">_ref</a></span>(Class&lt;T&gt;&nbsp;cl,
+ String&nbsp;name)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>&lt;T extends EObject&gt;<br>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#Z:Z_reg-T-java.lang.String-">_reg</a></span>(T&nbsp;obj,
+ String&nbsp;name)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>Amalthea</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">amalthea</a></span>(Procedures.Procedure1&lt;Amalthea&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#commonElements-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">commonElements</a></span>(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;CommonElements&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#componentsModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">componentsModel</a></span>(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;ComponentsModel&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#constraintsModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">constraintsModel</a></span>(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;ConstraintsModel&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#eventModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">eventModel</a></span>(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;EventModel&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#hardwareModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">hardwareModel</a></span>(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;HWModel&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#mappingModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">mappingModel</a></span>(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;MappingModel&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#osModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">osModel</a></span>(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;OSModel&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#propertyConstraintsModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">propertyConstraintsModel</a></span>(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;PropertyConstraintsModel&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#softwareModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">softwareModel</a></span>(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;SWModel&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#stimuliModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">stimuliModel</a></span>(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;StimuliModel&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AmaltheaBuilder--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AmaltheaBuilder</h4>
+<pre>public&nbsp;AmaltheaBuilder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>amalthea</h4>
+<pre>public&nbsp;Amalthea&nbsp;amalthea(Procedures.Procedure1&lt;Amalthea&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="commonElements-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>commonElements</h4>
+<pre>public&nbsp;void&nbsp;commonElements(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;CommonElements&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="eventModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>eventModel</h4>
+<pre>public&nbsp;void&nbsp;eventModel(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;EventModel&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="stimuliModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stimuliModel</h4>
+<pre>public&nbsp;void&nbsp;stimuliModel(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;StimuliModel&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="softwareModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>softwareModel</h4>
+<pre>public&nbsp;void&nbsp;softwareModel(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;SWModel&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="osModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>osModel</h4>
+<pre>public&nbsp;void&nbsp;osModel(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;OSModel&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="hardwareModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hardwareModel</h4>
+<pre>public&nbsp;void&nbsp;hardwareModel(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;HWModel&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="constraintsModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>constraintsModel</h4>
+<pre>public&nbsp;void&nbsp;constraintsModel(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;ConstraintsModel&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="propertyConstraintsModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>propertyConstraintsModel</h4>
+<pre>public&nbsp;void&nbsp;propertyConstraintsModel(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;PropertyConstraintsModel&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="componentsModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>componentsModel</h4>
+<pre>public&nbsp;void&nbsp;componentsModel(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;ComponentsModel&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="mappingModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mappingModel</h4>
+<pre>public&nbsp;void&nbsp;mappingModel(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;MappingModel&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="Z:Z_reg-org.eclipse.emf.ecore.EObject-java.lang.String-">
+<!-- -->
+</a><a name="Z:Z_reg-T-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>_reg</h4>
+<pre>public&nbsp;&lt;T extends EObject&gt;&nbsp;void&nbsp;_reg(T&nbsp;obj,
+ String&nbsp;name)</pre>
+</li>
+</ul>
+<a name="Z:Z_ref-java.lang.Class-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>_ref</h4>
+<pre>public&nbsp;&lt;T extends EObject&gt;&nbsp;T&nbsp;_ref(Class&lt;T&gt;&nbsp;cl,
+ String&nbsp;name)</pre>
+</li>
+</ul>
+<a name="Z:Z_find-org.eclipse.emf.ecore.EObject-java.lang.Class-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>_find</h4>
+<pre>public&nbsp;&lt;T extends INamed&gt;&nbsp;T&nbsp;_find(EObject&nbsp;context,
+ Class&lt;T&gt;&nbsp;cl,
+ String&nbsp;name)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/CommonElementsBuilder.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/CommonElementsBuilder.html
new file mode 100644
index 0000000..c1aca24
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/CommonElementsBuilder.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>CommonElementsBuilder</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.builder</div>
+<h2 title="Class CommonElementsBuilder" class="title">Class CommonElementsBuilder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>CommonElementsBuilder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">CommonElementsBuilder</span>
+extends Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#CommonElementsBuilder--">CommonElementsBuilder</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>CommonElements</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#commonElementsRoot-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">commonElementsRoot</a></span>(Procedures.Procedure1&lt;CommonElements&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#coreClassifier-org.eclipse.app4mc.amalthea.model.CommonElements-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">coreClassifier</a></span>(CommonElements&nbsp;container,
+ Procedures.Procedure1&lt;CoreClassifier&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#memoryClassifier-org.eclipse.app4mc.amalthea.model.CommonElements-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">memoryClassifier</a></span>(CommonElements&nbsp;container,
+ Procedures.Procedure1&lt;MemoryClassifier&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#tag-org.eclipse.app4mc.amalthea.model.CommonElements-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">tag</a></span>(CommonElements&nbsp;container,
+ Procedures.Procedure1&lt;Tag&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="CommonElementsBuilder--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CommonElementsBuilder</h4>
+<pre>public&nbsp;CommonElementsBuilder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="commonElementsRoot-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>commonElementsRoot</h4>
+<pre>public&nbsp;CommonElements&nbsp;commonElementsRoot(Procedures.Procedure1&lt;CommonElements&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="memoryClassifier-org.eclipse.app4mc.amalthea.model.CommonElements-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>memoryClassifier</h4>
+<pre>public&nbsp;void&nbsp;memoryClassifier(CommonElements&nbsp;container,
+ Procedures.Procedure1&lt;MemoryClassifier&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="coreClassifier-org.eclipse.app4mc.amalthea.model.CommonElements-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>coreClassifier</h4>
+<pre>public&nbsp;void&nbsp;coreClassifier(CommonElements&nbsp;container,
+ Procedures.Procedure1&lt;CoreClassifier&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="tag-org.eclipse.app4mc.amalthea.model.CommonElements-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>tag</h4>
+<pre>public&nbsp;void&nbsp;tag(CommonElements&nbsp;container,
+ Procedures.Procedure1&lt;Tag&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/ConstraintsBuilder.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/ConstraintsBuilder.html
new file mode 100644
index 0000000..be7dd86
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/ConstraintsBuilder.html
@@ -0,0 +1,298 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>ConstraintsBuilder</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.builder</div>
+<h2 title="Class ConstraintsBuilder" class="title">Class ConstraintsBuilder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>ConstraintsBuilder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">ConstraintsBuilder</span>
+extends Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#ConstraintsBuilder--">ConstraintsBuilder</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>ConstraintsModel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#constraintsModelRoot-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">constraintsModelRoot</a></span>(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;ConstraintsModel&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#deadline_Process-org.eclipse.app4mc.amalthea.model.ConstraintsModel-org.eclipse.app4mc.amalthea.model.AbstractProcess-org.eclipse.app4mc.amalthea.model.Time-">deadline_Process</a></span>(ConstraintsModel&nbsp;container,
+ AbstractProcess&nbsp;process,
+ Time&nbsp;deadline)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#deadline_Runnable-org.eclipse.app4mc.amalthea.model.ConstraintsModel-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.Time-">deadline_Runnable</a></span>(ConstraintsModel&nbsp;container,
+ Runnable&nbsp;runnable,
+ Time&nbsp;deadline)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#limit_Count-org.eclipse.app4mc.amalthea.model.Requirement-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">limit_Count</a></span>(Requirement&nbsp;container,
+ Procedures.Procedure1&lt;CountRequirementLimit&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#limit_CPUPercentage-org.eclipse.app4mc.amalthea.model.Requirement-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">limit_CPUPercentage</a></span>(Requirement&nbsp;container,
+ Procedures.Procedure1&lt;CPUPercentageRequirementLimit&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#limit_Frequency-org.eclipse.app4mc.amalthea.model.Requirement-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">limit_Frequency</a></span>(Requirement&nbsp;container,
+ Procedures.Procedure1&lt;FrequencyRequirementLimit&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#limit_Percentage-org.eclipse.app4mc.amalthea.model.Requirement-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">limit_Percentage</a></span>(Requirement&nbsp;container,
+ Procedures.Procedure1&lt;PercentageRequirementLimit&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#limit_Time-org.eclipse.app4mc.amalthea.model.Requirement-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">limit_Time</a></span>(Requirement&nbsp;container,
+ Procedures.Procedure1&lt;TimeRequirementLimit&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#requirement_Architecture-org.eclipse.app4mc.amalthea.model.ConstraintsModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">requirement_Architecture</a></span>(ConstraintsModel&nbsp;container,
+ Procedures.Procedure1&lt;ArchitectureRequirement&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#requirement_Process-org.eclipse.app4mc.amalthea.model.ConstraintsModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">requirement_Process</a></span>(ConstraintsModel&nbsp;container,
+ Procedures.Procedure1&lt;ProcessRequirement&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#requirement_ProcessChain-org.eclipse.app4mc.amalthea.model.ConstraintsModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">requirement_ProcessChain</a></span>(ConstraintsModel&nbsp;container,
+ Procedures.Procedure1&lt;ProcessChainRequirement&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#requirement_Runnable-org.eclipse.app4mc.amalthea.model.ConstraintsModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">requirement_Runnable</a></span>(ConstraintsModel&nbsp;container,
+ Procedures.Procedure1&lt;RunnableRequirement&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ConstraintsBuilder--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ConstraintsBuilder</h4>
+<pre>public&nbsp;ConstraintsBuilder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="constraintsModelRoot-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>constraintsModelRoot</h4>
+<pre>public&nbsp;ConstraintsModel&nbsp;constraintsModelRoot(Amalthea&nbsp;container,
+ Procedures.Procedure1&lt;ConstraintsModel&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="requirement_Architecture-org.eclipse.app4mc.amalthea.model.ConstraintsModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>requirement_Architecture</h4>
+<pre>public&nbsp;void&nbsp;requirement_Architecture(ConstraintsModel&nbsp;container,
+ Procedures.Procedure1&lt;ArchitectureRequirement&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="requirement_Runnable-org.eclipse.app4mc.amalthea.model.ConstraintsModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>requirement_Runnable</h4>
+<pre>public&nbsp;void&nbsp;requirement_Runnable(ConstraintsModel&nbsp;container,
+ Procedures.Procedure1&lt;RunnableRequirement&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="requirement_Process-org.eclipse.app4mc.amalthea.model.ConstraintsModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>requirement_Process</h4>
+<pre>public&nbsp;void&nbsp;requirement_Process(ConstraintsModel&nbsp;container,
+ Procedures.Procedure1&lt;ProcessRequirement&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="requirement_ProcessChain-org.eclipse.app4mc.amalthea.model.ConstraintsModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>requirement_ProcessChain</h4>
+<pre>public&nbsp;void&nbsp;requirement_ProcessChain(ConstraintsModel&nbsp;container,
+ Procedures.Procedure1&lt;ProcessChainRequirement&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="deadline_Process-org.eclipse.app4mc.amalthea.model.ConstraintsModel-org.eclipse.app4mc.amalthea.model.AbstractProcess-org.eclipse.app4mc.amalthea.model.Time-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deadline_Process</h4>
+<pre>public&nbsp;void&nbsp;deadline_Process(ConstraintsModel&nbsp;container,
+ AbstractProcess&nbsp;process,
+ Time&nbsp;deadline)</pre>
+</li>
+</ul>
+<a name="deadline_Runnable-org.eclipse.app4mc.amalthea.model.ConstraintsModel-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.Time-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deadline_Runnable</h4>
+<pre>public&nbsp;void&nbsp;deadline_Runnable(ConstraintsModel&nbsp;container,
+ Runnable&nbsp;runnable,
+ Time&nbsp;deadline)</pre>
+</li>
+</ul>
+<a name="limit_Time-org.eclipse.app4mc.amalthea.model.Requirement-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>limit_Time</h4>
+<pre>public&nbsp;void&nbsp;limit_Time(Requirement&nbsp;container,
+ Procedures.Procedure1&lt;TimeRequirementLimit&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="limit_Frequency-org.eclipse.app4mc.amalthea.model.Requirement-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>limit_Frequency</h4>
+<pre>public&nbsp;void&nbsp;limit_Frequency(Requirement&nbsp;container,
+ Procedures.Procedure1&lt;FrequencyRequirementLimit&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="limit_Percentage-org.eclipse.app4mc.amalthea.model.Requirement-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>limit_Percentage</h4>
+<pre>public&nbsp;void&nbsp;limit_Percentage(Requirement&nbsp;container,
+ Procedures.Procedure1&lt;PercentageRequirementLimit&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="limit_Count-org.eclipse.app4mc.amalthea.model.Requirement-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>limit_Count</h4>
+<pre>public&nbsp;void&nbsp;limit_Count(Requirement&nbsp;container,
+ Procedures.Procedure1&lt;CountRequirementLimit&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="limit_CPUPercentage-org.eclipse.app4mc.amalthea.model.Requirement-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>limit_CPUPercentage</h4>
+<pre>public&nbsp;void&nbsp;limit_CPUPercentage(Requirement&nbsp;container,
+ Procedures.Procedure1&lt;CPUPercentageRequirementLimit&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/DatatypeBuilder.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/DatatypeBuilder.html
new file mode 100644
index 0000000..8aaa198
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/DatatypeBuilder.html
@@ -0,0 +1,444 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>DatatypeBuilder</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.builder</div>
+<h2 title="Class DatatypeBuilder" class="title">Class DatatypeBuilder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>DatatypeBuilder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DatatypeBuilder</span>
+extends Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#DatatypeBuilder--">DatatypeBuilder</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#array-org.eclipse.app4mc.amalthea.model.Array-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">array</a></span>(Array&nbsp;container,
+ Procedures.Procedure1&lt;Array&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#array-org.eclipse.app4mc.amalthea.model.Channel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">array</a></span>(Channel&nbsp;container,
+ Procedures.Procedure1&lt;Array&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#array-org.eclipse.app4mc.amalthea.model.DataTypeDefinition-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">array</a></span>(DataTypeDefinition&nbsp;container,
+ Procedures.Procedure1&lt;Array&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#array-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">array</a></span>(Label&nbsp;container,
+ Procedures.Procedure1&lt;Array&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#array-org.eclipse.app4mc.amalthea.model.Pointer-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">array</a></span>(Pointer&nbsp;container,
+ Procedures.Procedure1&lt;Array&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#array-org.eclipse.app4mc.amalthea.model.StructEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">array</a></span>(StructEntry&nbsp;container,
+ Procedures.Procedure1&lt;Array&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#entry-org.eclipse.app4mc.amalthea.model.Struct-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">entry</a></span>(Struct&nbsp;container,
+ Procedures.Procedure1&lt;StructEntry&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#platform-org.eclipse.app4mc.amalthea.model.BaseTypeDefinition-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">platform</a></span>(BaseTypeDefinition&nbsp;container,
+ Procedures.Procedure1&lt;DataPlatformMapping&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#pointer-org.eclipse.app4mc.amalthea.model.Array-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">pointer</a></span>(Array&nbsp;container,
+ Procedures.Procedure1&lt;Pointer&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#pointer-org.eclipse.app4mc.amalthea.model.Channel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">pointer</a></span>(Channel&nbsp;container,
+ Procedures.Procedure1&lt;Pointer&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#pointer-org.eclipse.app4mc.amalthea.model.DataTypeDefinition-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">pointer</a></span>(DataTypeDefinition&nbsp;container,
+ Procedures.Procedure1&lt;Pointer&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#pointer-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">pointer</a></span>(Label&nbsp;container,
+ Procedures.Procedure1&lt;Pointer&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#pointer-org.eclipse.app4mc.amalthea.model.Pointer-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">pointer</a></span>(Pointer&nbsp;container,
+ Procedures.Procedure1&lt;Pointer&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#pointer-org.eclipse.app4mc.amalthea.model.StructEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">pointer</a></span>(StructEntry&nbsp;container,
+ Procedures.Procedure1&lt;Pointer&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#struct-org.eclipse.app4mc.amalthea.model.Array-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">struct</a></span>(Array&nbsp;container,
+ Procedures.Procedure1&lt;Struct&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#struct-org.eclipse.app4mc.amalthea.model.Channel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">struct</a></span>(Channel&nbsp;container,
+ Procedures.Procedure1&lt;Struct&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#struct-org.eclipse.app4mc.amalthea.model.DataTypeDefinition-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">struct</a></span>(DataTypeDefinition&nbsp;container,
+ Procedures.Procedure1&lt;Struct&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#struct-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">struct</a></span>(Label&nbsp;container,
+ Procedures.Procedure1&lt;Struct&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#struct-org.eclipse.app4mc.amalthea.model.Pointer-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">struct</a></span>(Pointer&nbsp;container,
+ Procedures.Procedure1&lt;Struct&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#struct-org.eclipse.app4mc.amalthea.model.StructEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">struct</a></span>(StructEntry&nbsp;container,
+ Procedures.Procedure1&lt;Struct&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#typeDefinition_BaseType-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">typeDefinition_BaseType</a></span>(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;BaseTypeDefinition&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#typeDefinition_DataType-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">typeDefinition_DataType</a></span>(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;DataTypeDefinition&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DatatypeBuilder--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DatatypeBuilder</h4>
+<pre>public&nbsp;DatatypeBuilder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="typeDefinition_BaseType-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>typeDefinition_BaseType</h4>
+<pre>public&nbsp;void&nbsp;typeDefinition_BaseType(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;BaseTypeDefinition&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="typeDefinition_DataType-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>typeDefinition_DataType</h4>
+<pre>public&nbsp;void&nbsp;typeDefinition_DataType(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;DataTypeDefinition&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="platform-org.eclipse.app4mc.amalthea.model.BaseTypeDefinition-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>platform</h4>
+<pre>public&nbsp;void&nbsp;platform(BaseTypeDefinition&nbsp;container,
+ Procedures.Procedure1&lt;DataPlatformMapping&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="struct-org.eclipse.app4mc.amalthea.model.Channel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>struct</h4>
+<pre>public&nbsp;void&nbsp;struct(Channel&nbsp;container,
+ Procedures.Procedure1&lt;Struct&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="struct-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>struct</h4>
+<pre>public&nbsp;void&nbsp;struct(Label&nbsp;container,
+ Procedures.Procedure1&lt;Struct&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="struct-org.eclipse.app4mc.amalthea.model.DataTypeDefinition-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>struct</h4>
+<pre>public&nbsp;void&nbsp;struct(DataTypeDefinition&nbsp;container,
+ Procedures.Procedure1&lt;Struct&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="struct-org.eclipse.app4mc.amalthea.model.Array-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>struct</h4>
+<pre>public&nbsp;void&nbsp;struct(Array&nbsp;container,
+ Procedures.Procedure1&lt;Struct&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="struct-org.eclipse.app4mc.amalthea.model.StructEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>struct</h4>
+<pre>public&nbsp;void&nbsp;struct(StructEntry&nbsp;container,
+ Procedures.Procedure1&lt;Struct&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="struct-org.eclipse.app4mc.amalthea.model.Pointer-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>struct</h4>
+<pre>public&nbsp;void&nbsp;struct(Pointer&nbsp;container,
+ Procedures.Procedure1&lt;Struct&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="entry-org.eclipse.app4mc.amalthea.model.Struct-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entry</h4>
+<pre>public&nbsp;void&nbsp;entry(Struct&nbsp;container,
+ Procedures.Procedure1&lt;StructEntry&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="array-org.eclipse.app4mc.amalthea.model.Channel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>array</h4>
+<pre>public&nbsp;void&nbsp;array(Channel&nbsp;container,
+ Procedures.Procedure1&lt;Array&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="array-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>array</h4>
+<pre>public&nbsp;void&nbsp;array(Label&nbsp;container,
+ Procedures.Procedure1&lt;Array&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="array-org.eclipse.app4mc.amalthea.model.DataTypeDefinition-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>array</h4>
+<pre>public&nbsp;void&nbsp;array(DataTypeDefinition&nbsp;container,
+ Procedures.Procedure1&lt;Array&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="array-org.eclipse.app4mc.amalthea.model.Array-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>array</h4>
+<pre>public&nbsp;void&nbsp;array(Array&nbsp;container,
+ Procedures.Procedure1&lt;Array&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="array-org.eclipse.app4mc.amalthea.model.StructEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>array</h4>
+<pre>public&nbsp;void&nbsp;array(StructEntry&nbsp;container,
+ Procedures.Procedure1&lt;Array&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="array-org.eclipse.app4mc.amalthea.model.Pointer-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>array</h4>
+<pre>public&nbsp;void&nbsp;array(Pointer&nbsp;container,
+ Procedures.Procedure1&lt;Array&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="pointer-org.eclipse.app4mc.amalthea.model.Channel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>pointer</h4>
+<pre>public&nbsp;void&nbsp;pointer(Channel&nbsp;container,
+ Procedures.Procedure1&lt;Pointer&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="pointer-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>pointer</h4>
+<pre>public&nbsp;void&nbsp;pointer(Label&nbsp;container,
+ Procedures.Procedure1&lt;Pointer&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="pointer-org.eclipse.app4mc.amalthea.model.DataTypeDefinition-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>pointer</h4>
+<pre>public&nbsp;void&nbsp;pointer(DataTypeDefinition&nbsp;container,
+ Procedures.Procedure1&lt;Pointer&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="pointer-org.eclipse.app4mc.amalthea.model.Array-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>pointer</h4>
+<pre>public&nbsp;void&nbsp;pointer(Array&nbsp;container,
+ Procedures.Procedure1&lt;Pointer&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="pointer-org.eclipse.app4mc.amalthea.model.StructEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>pointer</h4>
+<pre>public&nbsp;void&nbsp;pointer(StructEntry&nbsp;container,
+ Procedures.Procedure1&lt;Pointer&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="pointer-org.eclipse.app4mc.amalthea.model.Pointer-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>pointer</h4>
+<pre>public&nbsp;void&nbsp;pointer(Pointer&nbsp;container,
+ Procedures.Procedure1&lt;Pointer&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/HardwareBuilder.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/HardwareBuilder.html
new file mode 100644
index 0000000..2dcc6e2
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/HardwareBuilder.html
@@ -0,0 +1,472 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>HardwareBuilder</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.builder</div>
+<h2 title="Class HardwareBuilder" class="title">Class HardwareBuilder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>HardwareBuilder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">HardwareBuilder</span>
+extends Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#HardwareBuilder--">HardwareBuilder</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#access-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">access</a></span>(ProcessingUnit&nbsp;container,
+ Procedures.Procedure1&lt;HwAccessElement&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#cache-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">cache</a></span>(ProcessingUnit&nbsp;container,
+ Procedures.Procedure1&lt;Cache&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#connection-org.eclipse.app4mc.amalthea.model.HwStructure-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">connection</a></span>(HwStructure&nbsp;container,
+ Procedures.Procedure1&lt;HwConnection&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#definition_Cache-org.eclipse.app4mc.amalthea.model.HWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">definition_Cache</a></span>(HWModel&nbsp;container,
+ Procedures.Procedure1&lt;CacheDefinition&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#definition_ConnectionHandler-org.eclipse.app4mc.amalthea.model.HWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">definition_ConnectionHandler</a></span>(HWModel&nbsp;container,
+ Procedures.Procedure1&lt;ConnectionHandlerDefinition&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#definition_Memory-org.eclipse.app4mc.amalthea.model.HWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">definition_Memory</a></span>(HWModel&nbsp;container,
+ Procedures.Procedure1&lt;MemoryDefinition&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#definition_ProcessingUnit-org.eclipse.app4mc.amalthea.model.HWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">definition_ProcessingUnit</a></span>(HWModel&nbsp;container,
+ Procedures.Procedure1&lt;ProcessingUnitDefinition&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#domain_Frequency-org.eclipse.app4mc.amalthea.model.HWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">domain_Frequency</a></span>(HWModel&nbsp;container,
+ Procedures.Procedure1&lt;FrequencyDomain&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#domain_Power-org.eclipse.app4mc.amalthea.model.HWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">domain_Power</a></span>(HWModel&nbsp;container,
+ Procedures.Procedure1&lt;PowerDomain&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#feature-org.eclipse.app4mc.amalthea.model.HwFeatureCategory-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">feature</a></span>(HwFeatureCategory&nbsp;container,
+ Procedures.Procedure1&lt;HwFeature&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#featureCategory-org.eclipse.app4mc.amalthea.model.HWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">featureCategory</a></span>(HWModel&nbsp;container,
+ Procedures.Procedure1&lt;HwFeatureCategory&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>HWModel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#hardwareModelRoot-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">hardwareModelRoot</a></span>(Procedures.Procedure1&lt;HWModel&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#module_Cache-org.eclipse.app4mc.amalthea.model.HwStructure-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">module_Cache</a></span>(HwStructure&nbsp;container,
+ Procedures.Procedure1&lt;Cache&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#module_ConnectionHandler-org.eclipse.app4mc.amalthea.model.HwStructure-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">module_ConnectionHandler</a></span>(HwStructure&nbsp;container,
+ Procedures.Procedure1&lt;ConnectionHandler&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#module_Memory-org.eclipse.app4mc.amalthea.model.HwStructure-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">module_Memory</a></span>(HwStructure&nbsp;container,
+ Procedures.Procedure1&lt;Memory&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#module_ProcessingUnit-org.eclipse.app4mc.amalthea.model.HwStructure-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">module_ProcessingUnit</a></span>(HwStructure&nbsp;container,
+ Procedures.Procedure1&lt;ProcessingUnit&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#path-org.eclipse.app4mc.amalthea.model.HwAccessElement-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">path</a></span>(HwAccessElement&nbsp;container,
+ Procedures.Procedure1&lt;HwAccessPath&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#port-org.eclipse.app4mc.amalthea.model.Cache-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">port</a></span>(Cache&nbsp;container,
+ Procedures.Procedure1&lt;HwPort&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#port-org.eclipse.app4mc.amalthea.model.ConnectionHandler-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">port</a></span>(ConnectionHandler&nbsp;container,
+ Procedures.Procedure1&lt;HwPort&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#port-org.eclipse.app4mc.amalthea.model.HwStructure-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">port</a></span>(HwStructure&nbsp;container,
+ Procedures.Procedure1&lt;HwPort&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#port-org.eclipse.app4mc.amalthea.model.Memory-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">port</a></span>(Memory&nbsp;container,
+ Procedures.Procedure1&lt;HwPort&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#port-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">port</a></span>(ProcessingUnit&nbsp;container,
+ Procedures.Procedure1&lt;HwPort&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#structure-org.eclipse.app4mc.amalthea.model.HWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">structure</a></span>(HWModel&nbsp;container,
+ Procedures.Procedure1&lt;HwStructure&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#structure-org.eclipse.app4mc.amalthea.model.HwStructure-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">structure</a></span>(HwStructure&nbsp;container,
+ Procedures.Procedure1&lt;HwStructure&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="HardwareBuilder--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>HardwareBuilder</h4>
+<pre>public&nbsp;HardwareBuilder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="hardwareModelRoot-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hardwareModelRoot</h4>
+<pre>public&nbsp;HWModel&nbsp;hardwareModelRoot(Procedures.Procedure1&lt;HWModel&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="definition_Cache-org.eclipse.app4mc.amalthea.model.HWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>definition_Cache</h4>
+<pre>public&nbsp;void&nbsp;definition_Cache(HWModel&nbsp;container,
+ Procedures.Procedure1&lt;CacheDefinition&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="definition_Memory-org.eclipse.app4mc.amalthea.model.HWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>definition_Memory</h4>
+<pre>public&nbsp;void&nbsp;definition_Memory(HWModel&nbsp;container,
+ Procedures.Procedure1&lt;MemoryDefinition&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="definition_ProcessingUnit-org.eclipse.app4mc.amalthea.model.HWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>definition_ProcessingUnit</h4>
+<pre>public&nbsp;void&nbsp;definition_ProcessingUnit(HWModel&nbsp;container,
+ Procedures.Procedure1&lt;ProcessingUnitDefinition&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="definition_ConnectionHandler-org.eclipse.app4mc.amalthea.model.HWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>definition_ConnectionHandler</h4>
+<pre>public&nbsp;void&nbsp;definition_ConnectionHandler(HWModel&nbsp;container,
+ Procedures.Procedure1&lt;ConnectionHandlerDefinition&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="domain_Frequency-org.eclipse.app4mc.amalthea.model.HWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>domain_Frequency</h4>
+<pre>public&nbsp;void&nbsp;domain_Frequency(HWModel&nbsp;container,
+ Procedures.Procedure1&lt;FrequencyDomain&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="domain_Power-org.eclipse.app4mc.amalthea.model.HWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>domain_Power</h4>
+<pre>public&nbsp;void&nbsp;domain_Power(HWModel&nbsp;container,
+ Procedures.Procedure1&lt;PowerDomain&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="featureCategory-org.eclipse.app4mc.amalthea.model.HWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>featureCategory</h4>
+<pre>public&nbsp;void&nbsp;featureCategory(HWModel&nbsp;container,
+ Procedures.Procedure1&lt;HwFeatureCategory&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="structure-org.eclipse.app4mc.amalthea.model.HWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>structure</h4>
+<pre>public&nbsp;void&nbsp;structure(HWModel&nbsp;container,
+ Procedures.Procedure1&lt;HwStructure&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="feature-org.eclipse.app4mc.amalthea.model.HwFeatureCategory-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>feature</h4>
+<pre>public&nbsp;void&nbsp;feature(HwFeatureCategory&nbsp;container,
+ Procedures.Procedure1&lt;HwFeature&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="structure-org.eclipse.app4mc.amalthea.model.HwStructure-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>structure</h4>
+<pre>public&nbsp;void&nbsp;structure(HwStructure&nbsp;container,
+ Procedures.Procedure1&lt;HwStructure&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="module_Memory-org.eclipse.app4mc.amalthea.model.HwStructure-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>module_Memory</h4>
+<pre>public&nbsp;void&nbsp;module_Memory(HwStructure&nbsp;container,
+ Procedures.Procedure1&lt;Memory&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="module_ProcessingUnit-org.eclipse.app4mc.amalthea.model.HwStructure-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>module_ProcessingUnit</h4>
+<pre>public&nbsp;void&nbsp;module_ProcessingUnit(HwStructure&nbsp;container,
+ Procedures.Procedure1&lt;ProcessingUnit&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="module_Cache-org.eclipse.app4mc.amalthea.model.HwStructure-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>module_Cache</h4>
+<pre>public&nbsp;void&nbsp;module_Cache(HwStructure&nbsp;container,
+ Procedures.Procedure1&lt;Cache&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="module_ConnectionHandler-org.eclipse.app4mc.amalthea.model.HwStructure-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>module_ConnectionHandler</h4>
+<pre>public&nbsp;void&nbsp;module_ConnectionHandler(HwStructure&nbsp;container,
+ Procedures.Procedure1&lt;ConnectionHandler&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="connection-org.eclipse.app4mc.amalthea.model.HwStructure-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connection</h4>
+<pre>public&nbsp;void&nbsp;connection(HwStructure&nbsp;container,
+ Procedures.Procedure1&lt;HwConnection&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="port-org.eclipse.app4mc.amalthea.model.HwStructure-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>port</h4>
+<pre>public&nbsp;void&nbsp;port(HwStructure&nbsp;container,
+ Procedures.Procedure1&lt;HwPort&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="port-org.eclipse.app4mc.amalthea.model.Memory-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>port</h4>
+<pre>public&nbsp;void&nbsp;port(Memory&nbsp;container,
+ Procedures.Procedure1&lt;HwPort&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="port-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>port</h4>
+<pre>public&nbsp;void&nbsp;port(ProcessingUnit&nbsp;container,
+ Procedures.Procedure1&lt;HwPort&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="port-org.eclipse.app4mc.amalthea.model.Cache-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>port</h4>
+<pre>public&nbsp;void&nbsp;port(Cache&nbsp;container,
+ Procedures.Procedure1&lt;HwPort&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="port-org.eclipse.app4mc.amalthea.model.ConnectionHandler-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>port</h4>
+<pre>public&nbsp;void&nbsp;port(ConnectionHandler&nbsp;container,
+ Procedures.Procedure1&lt;HwPort&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="cache-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cache</h4>
+<pre>public&nbsp;void&nbsp;cache(ProcessingUnit&nbsp;container,
+ Procedures.Procedure1&lt;Cache&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="access-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>access</h4>
+<pre>public&nbsp;void&nbsp;access(ProcessingUnit&nbsp;container,
+ Procedures.Procedure1&lt;HwAccessElement&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="path-org.eclipse.app4mc.amalthea.model.HwAccessElement-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>path</h4>
+<pre>public&nbsp;void&nbsp;path(HwAccessElement&nbsp;container,
+ Procedures.Procedure1&lt;HwAccessPath&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/InstructionsBuilder.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/InstructionsBuilder.html
new file mode 100644
index 0000000..6cd8048
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/InstructionsBuilder.html
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>InstructionsBuilder</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.builder</div>
+<h2 title="Class InstructionsBuilder" class="title">Class InstructionsBuilder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>InstructionsBuilder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">(0.9.3) use <code>Ticks</code> instead.</span></div>
+</div>
+<br>
+<pre>@Deprecated
+public class <span class="typeNameLabel">InstructionsBuilder</span>
+extends Object</pre>
+<div class="block">Creates Need entries for Instructions</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#InstructionsBuilder--">InstructionsBuilder</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#featureCategory_Instructions-org.eclipse.app4mc.amalthea.model.HWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">featureCategory_Instructions</a></span>(HWModel&nbsp;container,
+ Procedures.Procedure1&lt;HwFeatureCategory&gt;&nbsp;initializer)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>IDiscreteValueDeviation</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#instructions-org.eclipse.app4mc.amalthea.model.ExecutionNeed-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-">instructions</a></span>(ExecutionNeed&nbsp;container,
+ IDiscreteValueDeviation&nbsp;instructions)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>DiscreteValueConstant</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#instructions-org.eclipse.app4mc.amalthea.model.ExecutionNeed-long-">instructions</a></span>(ExecutionNeed&nbsp;container,
+ long&nbsp;instructions)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="InstructionsBuilder--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>InstructionsBuilder</h4>
+<pre>public&nbsp;InstructionsBuilder()</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="instructions-org.eclipse.app4mc.amalthea.model.ExecutionNeed-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>instructions</h4>
+<pre>public&nbsp;DiscreteValueConstant&nbsp;instructions(ExecutionNeed&nbsp;container,
+ long&nbsp;instructions)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</li>
+</ul>
+<a name="instructions-org.eclipse.app4mc.amalthea.model.ExecutionNeed-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>instructions</h4>
+<pre>public&nbsp;IDiscreteValueDeviation&nbsp;instructions(ExecutionNeed&nbsp;container,
+ IDiscreteValueDeviation&nbsp;instructions)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</li>
+</ul>
+<a name="featureCategory_Instructions-org.eclipse.app4mc.amalthea.model.HWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>featureCategory_Instructions</h4>
+<pre>public&nbsp;void&nbsp;featureCategory_Instructions(HWModel&nbsp;container,
+ Procedures.Procedure1&lt;HwFeatureCategory&gt;&nbsp;initializer)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/MappingBuilder.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/MappingBuilder.html
new file mode 100644
index 0000000..9da6693
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/MappingBuilder.html
@@ -0,0 +1,217 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>MappingBuilder</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.builder</div>
+<h2 title="Class MappingBuilder" class="title">Class MappingBuilder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>MappingBuilder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">MappingBuilder</span>
+extends Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#MappingBuilder--">MappingBuilder</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#isrAllocation-org.eclipse.app4mc.amalthea.model.MappingModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">isrAllocation</a></span>(MappingModel&nbsp;container,
+ Procedures.Procedure1&lt;ISRAllocation&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>MappingModel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#mappingModelRoot-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">mappingModelRoot</a></span>(Procedures.Procedure1&lt;MappingModel&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#memoryMapping-org.eclipse.app4mc.amalthea.model.MappingModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">memoryMapping</a></span>(MappingModel&nbsp;container,
+ Procedures.Procedure1&lt;MemoryMapping&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#physicalSectionMapping-org.eclipse.app4mc.amalthea.model.MappingModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">physicalSectionMapping</a></span>(MappingModel&nbsp;container,
+ Procedures.Procedure1&lt;PhysicalSectionMapping&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#runnableAllocation-org.eclipse.app4mc.amalthea.model.MappingModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">runnableAllocation</a></span>(MappingModel&nbsp;container,
+ Procedures.Procedure1&lt;RunnableAllocation&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#schedulerAllocation-org.eclipse.app4mc.amalthea.model.MappingModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">schedulerAllocation</a></span>(MappingModel&nbsp;container,
+ Procedures.Procedure1&lt;SchedulerAllocation&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#taskAllocation-org.eclipse.app4mc.amalthea.model.MappingModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">taskAllocation</a></span>(MappingModel&nbsp;container,
+ Procedures.Procedure1&lt;TaskAllocation&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="MappingBuilder--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>MappingBuilder</h4>
+<pre>public&nbsp;MappingBuilder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="mappingModelRoot-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mappingModelRoot</h4>
+<pre>public&nbsp;MappingModel&nbsp;mappingModelRoot(Procedures.Procedure1&lt;MappingModel&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="isrAllocation-org.eclipse.app4mc.amalthea.model.MappingModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isrAllocation</h4>
+<pre>public&nbsp;void&nbsp;isrAllocation(MappingModel&nbsp;container,
+ Procedures.Procedure1&lt;ISRAllocation&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="taskAllocation-org.eclipse.app4mc.amalthea.model.MappingModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>taskAllocation</h4>
+<pre>public&nbsp;void&nbsp;taskAllocation(MappingModel&nbsp;container,
+ Procedures.Procedure1&lt;TaskAllocation&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="runnableAllocation-org.eclipse.app4mc.amalthea.model.MappingModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>runnableAllocation</h4>
+<pre>public&nbsp;void&nbsp;runnableAllocation(MappingModel&nbsp;container,
+ Procedures.Procedure1&lt;RunnableAllocation&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="schedulerAllocation-org.eclipse.app4mc.amalthea.model.MappingModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>schedulerAllocation</h4>
+<pre>public&nbsp;void&nbsp;schedulerAllocation(MappingModel&nbsp;container,
+ Procedures.Procedure1&lt;SchedulerAllocation&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="memoryMapping-org.eclipse.app4mc.amalthea.model.MappingModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>memoryMapping</h4>
+<pre>public&nbsp;void&nbsp;memoryMapping(MappingModel&nbsp;container,
+ Procedures.Procedure1&lt;MemoryMapping&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="physicalSectionMapping-org.eclipse.app4mc.amalthea.model.MappingModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>physicalSectionMapping</h4>
+<pre>public&nbsp;void&nbsp;physicalSectionMapping(MappingModel&nbsp;container,
+ Procedures.Procedure1&lt;PhysicalSectionMapping&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/OperatingSystemBuilder.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/OperatingSystemBuilder.html
new file mode 100644
index 0000000..f1ab6ef
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/OperatingSystemBuilder.html
@@ -0,0 +1,339 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>OperatingSystemBuilder</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.builder</div>
+<h2 title="Class OperatingSystemBuilder" class="title">Class OperatingSystemBuilder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>OperatingSystemBuilder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">OperatingSystemBuilder</span>
+extends Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#OperatingSystemBuilder--">OperatingSystemBuilder</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#apiOverhead-org.eclipse.app4mc.amalthea.model.OsOverhead-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">apiOverhead</a></span>(OsOverhead&nbsp;container,
+ Procedures.Procedure1&lt;OsAPIOverhead&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#dataConsistency-org.eclipse.app4mc.amalthea.model.OperatingSystem-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">dataConsistency</a></span>(OperatingSystem&nbsp;container,
+ Procedures.Procedure1&lt;OsDataConsistency&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#interruptController-org.eclipse.app4mc.amalthea.model.OperatingSystem-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">interruptController</a></span>(OperatingSystem&nbsp;container,
+ Procedures.Procedure1&lt;InterruptController&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#isrOverheadCat1-org.eclipse.app4mc.amalthea.model.OsOverhead-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">isrOverheadCat1</a></span>(OsOverhead&nbsp;container,
+ Procedures.Procedure1&lt;OsISROverhead&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#isrOverheadCat2-org.eclipse.app4mc.amalthea.model.OsOverhead-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">isrOverheadCat2</a></span>(OsOverhead&nbsp;container,
+ Procedures.Procedure1&lt;OsISROverhead&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#labelAccess-org.eclipse.app4mc.amalthea.model.Scheduler-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">labelAccess</a></span>(Scheduler&nbsp;container,
+ Procedures.Procedure1&lt;LabelAccess&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#operatingSystem_Vendor-org.eclipse.app4mc.amalthea.model.OSModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">operatingSystem_Vendor</a></span>(OSModel&nbsp;container,
+ Procedures.Procedure1&lt;VendorOperatingSystem&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#operatingSystem-org.eclipse.app4mc.amalthea.model.OSModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">operatingSystem</a></span>(OSModel&nbsp;container,
+ Procedures.Procedure1&lt;OperatingSystem&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>OSModel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#osModelRoot-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">osModelRoot</a></span>(Procedures.Procedure1&lt;OSModel&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#osOverhead-org.eclipse.app4mc.amalthea.model.OSModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">osOverhead</a></span>(OSModel&nbsp;container,
+ Procedures.Procedure1&lt;OsOverhead&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#parameter_extension-org.eclipse.app4mc.amalthea.model.SchedulerAssociation-java.lang.String-java.lang.String-">parameter_extension</a></span>(SchedulerAssociation&nbsp;container,
+ String&nbsp;key,
+ String&nbsp;value)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#parentAssociation-org.eclipse.app4mc.amalthea.model.TaskScheduler-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">parentAssociation</a></span>(TaskScheduler&nbsp;container,
+ Procedures.Procedure1&lt;SchedulerAssociation&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#schedulingParameters-org.eclipse.app4mc.amalthea.model.SchedulerAssociation-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">schedulingParameters</a></span>(SchedulerAssociation&nbsp;container,
+ Procedures.Procedure1&lt;SchedulingParameters&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#semaphore-org.eclipse.app4mc.amalthea.model.OSModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">semaphore</a></span>(OSModel&nbsp;container,
+ Procedures.Procedure1&lt;Semaphore&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#taskScheduler-org.eclipse.app4mc.amalthea.model.OperatingSystem-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">taskScheduler</a></span>(OperatingSystem&nbsp;container,
+ Procedures.Procedure1&lt;TaskScheduler&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="OperatingSystemBuilder--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>OperatingSystemBuilder</h4>
+<pre>public&nbsp;OperatingSystemBuilder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="osModelRoot-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>osModelRoot</h4>
+<pre>public&nbsp;OSModel&nbsp;osModelRoot(Procedures.Procedure1&lt;OSModel&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="operatingSystem-org.eclipse.app4mc.amalthea.model.OSModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>operatingSystem</h4>
+<pre>public&nbsp;void&nbsp;operatingSystem(OSModel&nbsp;container,
+ Procedures.Procedure1&lt;OperatingSystem&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="operatingSystem_Vendor-org.eclipse.app4mc.amalthea.model.OSModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>operatingSystem_Vendor</h4>
+<pre>public&nbsp;void&nbsp;operatingSystem_Vendor(OSModel&nbsp;container,
+ Procedures.Procedure1&lt;VendorOperatingSystem&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="semaphore-org.eclipse.app4mc.amalthea.model.OSModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>semaphore</h4>
+<pre>public&nbsp;void&nbsp;semaphore(OSModel&nbsp;container,
+ Procedures.Procedure1&lt;Semaphore&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="osOverhead-org.eclipse.app4mc.amalthea.model.OSModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>osOverhead</h4>
+<pre>public&nbsp;void&nbsp;osOverhead(OSModel&nbsp;container,
+ Procedures.Procedure1&lt;OsOverhead&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="taskScheduler-org.eclipse.app4mc.amalthea.model.OperatingSystem-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>taskScheduler</h4>
+<pre>public&nbsp;void&nbsp;taskScheduler(OperatingSystem&nbsp;container,
+ Procedures.Procedure1&lt;TaskScheduler&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="interruptController-org.eclipse.app4mc.amalthea.model.OperatingSystem-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>interruptController</h4>
+<pre>public&nbsp;void&nbsp;interruptController(OperatingSystem&nbsp;container,
+ Procedures.Procedure1&lt;InterruptController&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="dataConsistency-org.eclipse.app4mc.amalthea.model.OperatingSystem-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>dataConsistency</h4>
+<pre>public&nbsp;void&nbsp;dataConsistency(OperatingSystem&nbsp;container,
+ Procedures.Procedure1&lt;OsDataConsistency&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="labelAccess-org.eclipse.app4mc.amalthea.model.Scheduler-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>labelAccess</h4>
+<pre>public&nbsp;void&nbsp;labelAccess(Scheduler&nbsp;container,
+ Procedures.Procedure1&lt;LabelAccess&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="parentAssociation-org.eclipse.app4mc.amalthea.model.TaskScheduler-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parentAssociation</h4>
+<pre>public&nbsp;void&nbsp;parentAssociation(TaskScheduler&nbsp;container,
+ Procedures.Procedure1&lt;SchedulerAssociation&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="schedulingParameters-org.eclipse.app4mc.amalthea.model.SchedulerAssociation-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>schedulingParameters</h4>
+<pre>public&nbsp;void&nbsp;schedulingParameters(SchedulerAssociation&nbsp;container,
+ Procedures.Procedure1&lt;SchedulingParameters&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="parameter_extension-org.eclipse.app4mc.amalthea.model.SchedulerAssociation-java.lang.String-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parameter_extension</h4>
+<pre>public&nbsp;void&nbsp;parameter_extension(SchedulerAssociation&nbsp;container,
+ String&nbsp;key,
+ String&nbsp;value)</pre>
+</li>
+</ul>
+<a name="apiOverhead-org.eclipse.app4mc.amalthea.model.OsOverhead-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>apiOverhead</h4>
+<pre>public&nbsp;void&nbsp;apiOverhead(OsOverhead&nbsp;container,
+ Procedures.Procedure1&lt;OsAPIOverhead&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="isrOverheadCat1-org.eclipse.app4mc.amalthea.model.OsOverhead-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isrOverheadCat1</h4>
+<pre>public&nbsp;void&nbsp;isrOverheadCat1(OsOverhead&nbsp;container,
+ Procedures.Procedure1&lt;OsISROverhead&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="isrOverheadCat2-org.eclipse.app4mc.amalthea.model.OsOverhead-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isrOverheadCat2</h4>
+<pre>public&nbsp;void&nbsp;isrOverheadCat2(OsOverhead&nbsp;container,
+ Procedures.Procedure1&lt;OsISROverhead&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/SoftwareBuilder.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/SoftwareBuilder.html
new file mode 100644
index 0000000..6a15213
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/SoftwareBuilder.html
@@ -0,0 +1,1361 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>SoftwareBuilder</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.builder</div>
+<h2 title="Class SoftwareBuilder" class="title">Class SoftwareBuilder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>SoftwareBuilder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SoftwareBuilder</span>
+extends Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#SoftwareBuilder--">SoftwareBuilder</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#activation_Custom-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">activation_Custom</a></span>(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;CustomActivation&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#activation_Event-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">activation_Event</a></span>(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;EventActivation&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#activation_Periodic-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">activation_Periodic</a></span>(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;PeriodicActivation&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#activation_Single-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">activation_Single</a></span>(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;SingleActivation&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#activation_Sporadic-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">activation_Sporadic</a></span>(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;SporadicActivation&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#activation_VariableRate-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">activation_VariableRate</a></span>(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;VariableRateActivation&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#callSequence-org.eclipse.app4mc.amalthea.model.ModeSwitchDefault-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">callSequence</a></span>(ModeSwitchDefault&lt;GraphEntryBase&gt;&nbsp;container,
+ Procedures.Procedure1&lt;CallSequence&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#callSequence-org.eclipse.app4mc.amalthea.model.ModeSwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">callSequence</a></span>(ModeSwitchEntry&lt;GraphEntryBase&gt;&nbsp;container,
+ Procedures.Procedure1&lt;CallSequence&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#callSequence-org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">callSequence</a></span>(ProbabilitySwitchEntry&lt;GraphEntryBase&gt;&nbsp;container,
+ Procedures.Procedure1&lt;CallSequence&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#callSequence-org.eclipse.app4mc.amalthea.model.Task-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">callSequence</a></span>(Task&nbsp;container,
+ Procedures.Procedure1&lt;CallSequence&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#channel-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">channel</a></span>(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;Channel&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#clearEvent-org.eclipse.app4mc.amalthea.model.CallSequence-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">clearEvent</a></span>(CallSequence&nbsp;container,
+ Procedures.Procedure1&lt;ClearEvent&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#defaultConstant-org.eclipse.app4mc.amalthea.model.Ticks-long-">defaultConstant</a></span>(Ticks&nbsp;container,
+ long&nbsp;ticks)</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#defaultDeviation-org.eclipse.app4mc.amalthea.model.Ticks-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-">defaultDeviation</a></span>(Ticks&nbsp;container,
+ IDiscreteValueDeviation&nbsp;ticks)</code>&nbsp;</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#defaultEntry-org.eclipse.app4mc.amalthea.model.ModeSwitch-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">defaultEntry</a></span>(ModeSwitch&nbsp;container,
+ Procedures.Procedure1&lt;ModeSwitchDefault&lt;GraphEntryBase&gt;&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#defaultEntry-org.eclipse.app4mc.amalthea.model.RunnableModeSwitch-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">defaultEntry</a></span>(RunnableModeSwitch&nbsp;container,
+ Procedures.Procedure1&lt;ModeSwitchDefault&lt;RunnableItem&gt;&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#enforcedMigration-org.eclipse.app4mc.amalthea.model.CallSequence-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">enforcedMigration</a></span>(CallSequence&nbsp;container,
+ Procedures.Procedure1&lt;EnforcedMigration&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#entry-org.eclipse.app4mc.amalthea.model.ModeSwitch-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">entry</a></span>(ModeSwitch&nbsp;container,
+ Procedures.Procedure1&lt;ModeSwitchEntry&lt;GraphEntryBase&gt;&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#entry-org.eclipse.app4mc.amalthea.model.ProbabilitySwitch-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">entry</a></span>(ProbabilitySwitch&nbsp;container,
+ Procedures.Procedure1&lt;ProbabilitySwitchEntry&lt;GraphEntryBase&gt;&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#entry-org.eclipse.app4mc.amalthea.model.RunnableModeSwitch-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">entry</a></span>(RunnableModeSwitch&nbsp;container,
+ Procedures.Procedure1&lt;ModeSwitchEntry&lt;RunnableItem&gt;&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#entry-org.eclipse.app4mc.amalthea.model.RunnableProbabilitySwitch-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">entry</a></span>(RunnableProbabilitySwitch&nbsp;container,
+ Procedures.Procedure1&lt;ProbabilitySwitchEntry&lt;RunnableItem&gt;&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#execNeed-org.eclipse.app4mc.amalthea.model.Group-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">execNeed</a></span>(Group&nbsp;container,
+ Procedures.Procedure1&lt;ExecutionNeed&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#execNeed-org.eclipse.app4mc.amalthea.model.ModeSwitchDefault-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">execNeed</a></span>(ModeSwitchDefault&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;ExecutionNeed&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#execNeed-org.eclipse.app4mc.amalthea.model.ModeSwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">execNeed</a></span>(ModeSwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;ExecutionNeed&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#execNeed-org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">execNeed</a></span>(ProbabilitySwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;ExecutionNeed&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#execNeed-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">execNeed</a></span>(Runnable&nbsp;container,
+ Procedures.Procedure1&lt;ExecutionNeed&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#extended-org.eclipse.app4mc.amalthea.model.Ticks-org.eclipse.app4mc.amalthea.model.ProcessingUnitDefinition-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-">extended</a></span>(Ticks&nbsp;container,
+ ProcessingUnitDefinition&nbsp;puDef,
+ IDiscreteValueDeviation&nbsp;ticks)</code>&nbsp;</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#group-org.eclipse.app4mc.amalthea.model.Group-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">group</a></span>(Group&nbsp;container,
+ Procedures.Procedure1&lt;Group&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#group-org.eclipse.app4mc.amalthea.model.ModeSwitchDefault-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">group</a></span>(ModeSwitchDefault&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;Group&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#group-org.eclipse.app4mc.amalthea.model.ModeSwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">group</a></span>(ModeSwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;Group&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#group-org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">group</a></span>(ProbabilitySwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;Group&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#group-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">group</a></span>(Runnable&nbsp;container,
+ Procedures.Procedure1&lt;Group&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#interProcessTrigger-org.eclipse.app4mc.amalthea.model.CallSequence-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">interProcessTrigger</a></span>(CallSequence&nbsp;container,
+ Procedures.Procedure1&lt;InterProcessTrigger&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#isr-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">isr</a></span>(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;ISR&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#label-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">label</a></span>(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;Label&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#labelAccess-org.eclipse.app4mc.amalthea.model.Group-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">labelAccess</a></span>(Group&nbsp;container,
+ Procedures.Procedure1&lt;LabelAccess&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#labelAccess-org.eclipse.app4mc.amalthea.model.ModeSwitchDefault-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">labelAccess</a></span>(ModeSwitchDefault&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;LabelAccess&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#labelAccess-org.eclipse.app4mc.amalthea.model.ModeSwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">labelAccess</a></span>(ModeSwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;LabelAccess&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#labelAccess-org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">labelAccess</a></span>(ProbabilitySwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;LabelAccess&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#labelAccess-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">labelAccess</a></span>(Runnable&nbsp;container,
+ Procedures.Procedure1&lt;LabelAccess&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#literal-org.eclipse.app4mc.amalthea.model.Mode-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">literal</a></span>(Mode&nbsp;container,
+ Procedures.Procedure1&lt;ModeLiteral&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#mode-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">mode</a></span>(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;Mode&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#modeLabel-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">modeLabel</a></span>(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;ModeLabel&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#modeSwitch-org.eclipse.app4mc.amalthea.model.ModeSwitchDefault-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">modeSwitch</a></span>(ModeSwitchDefault&lt;GraphEntryBase&gt;&nbsp;container,
+ Procedures.Procedure1&lt;ModeSwitch&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#modeSwitch-org.eclipse.app4mc.amalthea.model.ModeSwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">modeSwitch</a></span>(ModeSwitchEntry&lt;GraphEntryBase&gt;&nbsp;container,
+ Procedures.Procedure1&lt;ModeSwitch&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#modeSwitch-org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">modeSwitch</a></span>(ProbabilitySwitchEntry&lt;GraphEntryBase&gt;&nbsp;container,
+ Procedures.Procedure1&lt;ModeSwitch&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#modeSwitch-org.eclipse.app4mc.amalthea.model.Task-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">modeSwitch</a></span>(Task&nbsp;container,
+ Procedures.Procedure1&lt;ModeSwitch&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#need-org.eclipse.app4mc.amalthea.model.ExecutionNeed-java.lang.String-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-">need</a></span>(ExecutionNeed&nbsp;container,
+ String&nbsp;key,
+ IDiscreteValueDeviation&nbsp;need)</code>&nbsp;</td>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#parameter-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">parameter</a></span>(Runnable&nbsp;container,
+ Procedures.Procedure1&lt;RunnableParameter&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#probabilitySwitch-org.eclipse.app4mc.amalthea.model.ModeSwitchDefault-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">probabilitySwitch</a></span>(ModeSwitchDefault&lt;GraphEntryBase&gt;&nbsp;container,
+ Procedures.Procedure1&lt;ProbabilitySwitch&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#probabilitySwitch-org.eclipse.app4mc.amalthea.model.ModeSwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">probabilitySwitch</a></span>(ModeSwitchEntry&lt;GraphEntryBase&gt;&nbsp;container,
+ Procedures.Procedure1&lt;ProbabilitySwitch&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#probabilitySwitch-org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">probabilitySwitch</a></span>(ProbabilitySwitchEntry&lt;GraphEntryBase&gt;&nbsp;container,
+ Procedures.Procedure1&lt;ProbabilitySwitch&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#probabilitySwitch-org.eclipse.app4mc.amalthea.model.Task-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">probabilitySwitch</a></span>(Task&nbsp;container,
+ Procedures.Procedure1&lt;ProbabilitySwitch&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i53" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#processPrototype-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">processPrototype</a></span>(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;ProcessPrototype&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i54" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#runModeSwitch-org.eclipse.app4mc.amalthea.model.Group-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">runModeSwitch</a></span>(Group&nbsp;container,
+ Procedures.Procedure1&lt;RunnableModeSwitch&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#runModeSwitch-org.eclipse.app4mc.amalthea.model.ModeSwitchDefault-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">runModeSwitch</a></span>(ModeSwitchDefault&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;RunnableModeSwitch&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#runModeSwitch-org.eclipse.app4mc.amalthea.model.ModeSwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">runModeSwitch</a></span>(ModeSwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;RunnableModeSwitch&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i57" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#runModeSwitch-org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">runModeSwitch</a></span>(ProbabilitySwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;RunnableModeSwitch&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i58" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#runModeSwitch-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">runModeSwitch</a></span>(Runnable&nbsp;container,
+ Procedures.Procedure1&lt;RunnableModeSwitch&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i59" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#runnable-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">runnable</a></span>(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;Runnable&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i60" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#runnableCall-org.eclipse.app4mc.amalthea.model.CallSequence-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">runnableCall</a></span>(CallSequence&nbsp;container,
+ Procedures.Procedure1&lt;TaskRunnableCall&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i61" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#runnableCall-org.eclipse.app4mc.amalthea.model.Group-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">runnableCall</a></span>(Group&nbsp;container,
+ Procedures.Procedure1&lt;RunnableCall&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i62" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#runnableCall-org.eclipse.app4mc.amalthea.model.ModeSwitchDefault-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">runnableCall</a></span>(ModeSwitchDefault&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;RunnableCall&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i63" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#runnableCall-org.eclipse.app4mc.amalthea.model.ModeSwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">runnableCall</a></span>(ModeSwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;RunnableCall&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i64" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#runnableCall-org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">runnableCall</a></span>(ProbabilitySwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;RunnableCall&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i65" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#runnableCall-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">runnableCall</a></span>(Runnable&nbsp;container,
+ Procedures.Procedure1&lt;RunnableCall&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i66" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#runProbabilitySwitch-org.eclipse.app4mc.amalthea.model.Group-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">runProbabilitySwitch</a></span>(Group&nbsp;container,
+ Procedures.Procedure1&lt;RunnableProbabilitySwitch&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i67" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#runProbabilitySwitch-org.eclipse.app4mc.amalthea.model.ModeSwitchDefault-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">runProbabilitySwitch</a></span>(ModeSwitchDefault&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;RunnableProbabilitySwitch&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i68" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#runProbabilitySwitch-org.eclipse.app4mc.amalthea.model.ModeSwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">runProbabilitySwitch</a></span>(ModeSwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;RunnableProbabilitySwitch&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i69" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#runProbabilitySwitch-org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">runProbabilitySwitch</a></span>(ProbabilitySwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;RunnableProbabilitySwitch&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i70" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#runProbabilitySwitch-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">runProbabilitySwitch</a></span>(Runnable&nbsp;container,
+ Procedures.Procedure1&lt;RunnableProbabilitySwitch&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i71" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#schedulePoint-org.eclipse.app4mc.amalthea.model.CallSequence-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">schedulePoint</a></span>(CallSequence&nbsp;container,
+ Procedures.Procedure1&lt;SchedulePoint&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i72" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#section-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">section</a></span>(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;Section&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i73" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#setEvent-org.eclipse.app4mc.amalthea.model.CallSequence-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">setEvent</a></span>(CallSequence&nbsp;container,
+ Procedures.Procedure1&lt;SetEvent&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i74" class="altColor">
+<td class="colFirst"><code>SWModel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#softwareModelRoot-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">softwareModelRoot</a></span>(Procedures.Procedure1&lt;SWModel&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i75" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#task-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">task</a></span>(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;Task&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i76" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#terminateProcess-org.eclipse.app4mc.amalthea.model.CallSequence-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">terminateProcess</a></span>(CallSequence&nbsp;container,
+ Procedures.Procedure1&lt;TerminateProcess&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i77" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#ticks-org.eclipse.app4mc.amalthea.model.Group-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">ticks</a></span>(Group&nbsp;container,
+ Procedures.Procedure1&lt;Ticks&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i78" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#ticks-org.eclipse.app4mc.amalthea.model.ModeSwitchDefault-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">ticks</a></span>(ModeSwitchDefault&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;Ticks&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i79" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#ticks-org.eclipse.app4mc.amalthea.model.ModeSwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">ticks</a></span>(ModeSwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;Ticks&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i80" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#ticks-org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">ticks</a></span>(ProbabilitySwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;Ticks&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i81" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#ticks-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">ticks</a></span>(Runnable&nbsp;container,
+ Procedures.Procedure1&lt;Ticks&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+<tr id="i82" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#waitEvent-org.eclipse.app4mc.amalthea.model.CallSequence-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">waitEvent</a></span>(CallSequence&nbsp;container,
+ Procedures.Procedure1&lt;WaitEvent&gt;&nbsp;initializer)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SoftwareBuilder--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SoftwareBuilder</h4>
+<pre>public&nbsp;SoftwareBuilder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="softwareModelRoot-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>softwareModelRoot</h4>
+<pre>public&nbsp;SWModel&nbsp;softwareModelRoot(Procedures.Procedure1&lt;SWModel&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="isr-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isr</h4>
+<pre>public&nbsp;void&nbsp;isr(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;ISR&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="task-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>task</h4>
+<pre>public&nbsp;void&nbsp;task(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;Task&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="runnable-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>runnable</h4>
+<pre>public&nbsp;void&nbsp;runnable(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;Runnable&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="label-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>label</h4>
+<pre>public&nbsp;void&nbsp;label(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;Label&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="channel-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>channel</h4>
+<pre>public&nbsp;void&nbsp;channel(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;Channel&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="processPrototype-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>processPrototype</h4>
+<pre>public&nbsp;void&nbsp;processPrototype(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;ProcessPrototype&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="section-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>section</h4>
+<pre>public&nbsp;void&nbsp;section(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;Section&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="activation_Single-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>activation_Single</h4>
+<pre>public&nbsp;void&nbsp;activation_Single(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;SingleActivation&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="activation_Sporadic-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>activation_Sporadic</h4>
+<pre>public&nbsp;void&nbsp;activation_Sporadic(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;SporadicActivation&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="activation_Periodic-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>activation_Periodic</h4>
+<pre>public&nbsp;void&nbsp;activation_Periodic(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;PeriodicActivation&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="activation_Event-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>activation_Event</h4>
+<pre>public&nbsp;void&nbsp;activation_Event(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;EventActivation&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="activation_VariableRate-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>activation_VariableRate</h4>
+<pre>public&nbsp;void&nbsp;activation_VariableRate(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;VariableRateActivation&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="activation_Custom-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>activation_Custom</h4>
+<pre>public&nbsp;void&nbsp;activation_Custom(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;CustomActivation&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="mode-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mode</h4>
+<pre>public&nbsp;void&nbsp;mode(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;Mode&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="modeLabel-org.eclipse.app4mc.amalthea.model.SWModel-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>modeLabel</h4>
+<pre>public&nbsp;void&nbsp;modeLabel(SWModel&nbsp;container,
+ Procedures.Procedure1&lt;ModeLabel&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="literal-org.eclipse.app4mc.amalthea.model.Mode-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>literal</h4>
+<pre>public&nbsp;void&nbsp;literal(Mode&nbsp;container,
+ Procedures.Procedure1&lt;ModeLiteral&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="callSequence-org.eclipse.app4mc.amalthea.model.Task-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>callSequence</h4>
+<pre>public&nbsp;void&nbsp;callSequence(Task&nbsp;container,
+ Procedures.Procedure1&lt;CallSequence&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="callSequence-org.eclipse.app4mc.amalthea.model.ModeSwitchDefault-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>callSequence</h4>
+<pre>public&nbsp;void&nbsp;callSequence(ModeSwitchDefault&lt;GraphEntryBase&gt;&nbsp;container,
+ Procedures.Procedure1&lt;CallSequence&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="callSequence-org.eclipse.app4mc.amalthea.model.ModeSwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>callSequence</h4>
+<pre>public&nbsp;void&nbsp;callSequence(ModeSwitchEntry&lt;GraphEntryBase&gt;&nbsp;container,
+ Procedures.Procedure1&lt;CallSequence&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="callSequence-org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>callSequence</h4>
+<pre>public&nbsp;void&nbsp;callSequence(ProbabilitySwitchEntry&lt;GraphEntryBase&gt;&nbsp;container,
+ Procedures.Procedure1&lt;CallSequence&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="modeSwitch-org.eclipse.app4mc.amalthea.model.Task-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>modeSwitch</h4>
+<pre>public&nbsp;void&nbsp;modeSwitch(Task&nbsp;container,
+ Procedures.Procedure1&lt;ModeSwitch&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="modeSwitch-org.eclipse.app4mc.amalthea.model.ModeSwitchDefault-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>modeSwitch</h4>
+<pre>public&nbsp;void&nbsp;modeSwitch(ModeSwitchDefault&lt;GraphEntryBase&gt;&nbsp;container,
+ Procedures.Procedure1&lt;ModeSwitch&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="modeSwitch-org.eclipse.app4mc.amalthea.model.ModeSwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>modeSwitch</h4>
+<pre>public&nbsp;void&nbsp;modeSwitch(ModeSwitchEntry&lt;GraphEntryBase&gt;&nbsp;container,
+ Procedures.Procedure1&lt;ModeSwitch&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="modeSwitch-org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>modeSwitch</h4>
+<pre>public&nbsp;void&nbsp;modeSwitch(ProbabilitySwitchEntry&lt;GraphEntryBase&gt;&nbsp;container,
+ Procedures.Procedure1&lt;ModeSwitch&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="entry-org.eclipse.app4mc.amalthea.model.ModeSwitch-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entry</h4>
+<pre>public&nbsp;void&nbsp;entry(ModeSwitch&nbsp;container,
+ Procedures.Procedure1&lt;ModeSwitchEntry&lt;GraphEntryBase&gt;&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="defaultEntry-org.eclipse.app4mc.amalthea.model.ModeSwitch-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>defaultEntry</h4>
+<pre>public&nbsp;void&nbsp;defaultEntry(ModeSwitch&nbsp;container,
+ Procedures.Procedure1&lt;ModeSwitchDefault&lt;GraphEntryBase&gt;&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="probabilitySwitch-org.eclipse.app4mc.amalthea.model.Task-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>probabilitySwitch</h4>
+<pre>public&nbsp;void&nbsp;probabilitySwitch(Task&nbsp;container,
+ Procedures.Procedure1&lt;ProbabilitySwitch&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="probabilitySwitch-org.eclipse.app4mc.amalthea.model.ModeSwitchDefault-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>probabilitySwitch</h4>
+<pre>public&nbsp;void&nbsp;probabilitySwitch(ModeSwitchDefault&lt;GraphEntryBase&gt;&nbsp;container,
+ Procedures.Procedure1&lt;ProbabilitySwitch&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="probabilitySwitch-org.eclipse.app4mc.amalthea.model.ModeSwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>probabilitySwitch</h4>
+<pre>public&nbsp;void&nbsp;probabilitySwitch(ModeSwitchEntry&lt;GraphEntryBase&gt;&nbsp;container,
+ Procedures.Procedure1&lt;ProbabilitySwitch&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="probabilitySwitch-org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>probabilitySwitch</h4>
+<pre>public&nbsp;void&nbsp;probabilitySwitch(ProbabilitySwitchEntry&lt;GraphEntryBase&gt;&nbsp;container,
+ Procedures.Procedure1&lt;ProbabilitySwitch&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="entry-org.eclipse.app4mc.amalthea.model.ProbabilitySwitch-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entry</h4>
+<pre>public&nbsp;void&nbsp;entry(ProbabilitySwitch&nbsp;container,
+ Procedures.Procedure1&lt;ProbabilitySwitchEntry&lt;GraphEntryBase&gt;&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="runnableCall-org.eclipse.app4mc.amalthea.model.CallSequence-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>runnableCall</h4>
+<pre>public&nbsp;void&nbsp;runnableCall(CallSequence&nbsp;container,
+ Procedures.Procedure1&lt;TaskRunnableCall&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="schedulePoint-org.eclipse.app4mc.amalthea.model.CallSequence-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>schedulePoint</h4>
+<pre>public&nbsp;void&nbsp;schedulePoint(CallSequence&nbsp;container,
+ Procedures.Procedure1&lt;SchedulePoint&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="interProcessTrigger-org.eclipse.app4mc.amalthea.model.CallSequence-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>interProcessTrigger</h4>
+<pre>public&nbsp;void&nbsp;interProcessTrigger(CallSequence&nbsp;container,
+ Procedures.Procedure1&lt;InterProcessTrigger&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="enforcedMigration-org.eclipse.app4mc.amalthea.model.CallSequence-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>enforcedMigration</h4>
+<pre>public&nbsp;void&nbsp;enforcedMigration(CallSequence&nbsp;container,
+ Procedures.Procedure1&lt;EnforcedMigration&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="terminateProcess-org.eclipse.app4mc.amalthea.model.CallSequence-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>terminateProcess</h4>
+<pre>public&nbsp;void&nbsp;terminateProcess(CallSequence&nbsp;container,
+ Procedures.Procedure1&lt;TerminateProcess&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="clearEvent-org.eclipse.app4mc.amalthea.model.CallSequence-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clearEvent</h4>
+<pre>public&nbsp;void&nbsp;clearEvent(CallSequence&nbsp;container,
+ Procedures.Procedure1&lt;ClearEvent&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="waitEvent-org.eclipse.app4mc.amalthea.model.CallSequence-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>waitEvent</h4>
+<pre>public&nbsp;void&nbsp;waitEvent(CallSequence&nbsp;container,
+ Procedures.Procedure1&lt;WaitEvent&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="setEvent-org.eclipse.app4mc.amalthea.model.CallSequence-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setEvent</h4>
+<pre>public&nbsp;void&nbsp;setEvent(CallSequence&nbsp;container,
+ Procedures.Procedure1&lt;SetEvent&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="parameter-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parameter</h4>
+<pre>public&nbsp;void&nbsp;parameter(Runnable&nbsp;container,
+ Procedures.Procedure1&lt;RunnableParameter&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="group-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>group</h4>
+<pre>public&nbsp;void&nbsp;group(Runnable&nbsp;container,
+ Procedures.Procedure1&lt;Group&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="group-org.eclipse.app4mc.amalthea.model.Group-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>group</h4>
+<pre>public&nbsp;void&nbsp;group(Group&nbsp;container,
+ Procedures.Procedure1&lt;Group&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="group-org.eclipse.app4mc.amalthea.model.ModeSwitchDefault-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>group</h4>
+<pre>public&nbsp;void&nbsp;group(ModeSwitchDefault&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;Group&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="group-org.eclipse.app4mc.amalthea.model.ModeSwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>group</h4>
+<pre>public&nbsp;void&nbsp;group(ModeSwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;Group&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="group-org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>group</h4>
+<pre>public&nbsp;void&nbsp;group(ProbabilitySwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;Group&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="runModeSwitch-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>runModeSwitch</h4>
+<pre>public&nbsp;void&nbsp;runModeSwitch(Runnable&nbsp;container,
+ Procedures.Procedure1&lt;RunnableModeSwitch&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="runModeSwitch-org.eclipse.app4mc.amalthea.model.Group-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>runModeSwitch</h4>
+<pre>public&nbsp;void&nbsp;runModeSwitch(Group&nbsp;container,
+ Procedures.Procedure1&lt;RunnableModeSwitch&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="runModeSwitch-org.eclipse.app4mc.amalthea.model.ModeSwitchDefault-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>runModeSwitch</h4>
+<pre>public&nbsp;void&nbsp;runModeSwitch(ModeSwitchDefault&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;RunnableModeSwitch&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="runModeSwitch-org.eclipse.app4mc.amalthea.model.ModeSwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>runModeSwitch</h4>
+<pre>public&nbsp;void&nbsp;runModeSwitch(ModeSwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;RunnableModeSwitch&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="runModeSwitch-org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>runModeSwitch</h4>
+<pre>public&nbsp;void&nbsp;runModeSwitch(ProbabilitySwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;RunnableModeSwitch&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="entry-org.eclipse.app4mc.amalthea.model.RunnableModeSwitch-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entry</h4>
+<pre>public&nbsp;void&nbsp;entry(RunnableModeSwitch&nbsp;container,
+ Procedures.Procedure1&lt;ModeSwitchEntry&lt;RunnableItem&gt;&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="defaultEntry-org.eclipse.app4mc.amalthea.model.RunnableModeSwitch-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>defaultEntry</h4>
+<pre>public&nbsp;void&nbsp;defaultEntry(RunnableModeSwitch&nbsp;container,
+ Procedures.Procedure1&lt;ModeSwitchDefault&lt;RunnableItem&gt;&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="runProbabilitySwitch-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>runProbabilitySwitch</h4>
+<pre>public&nbsp;void&nbsp;runProbabilitySwitch(Runnable&nbsp;container,
+ Procedures.Procedure1&lt;RunnableProbabilitySwitch&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="runProbabilitySwitch-org.eclipse.app4mc.amalthea.model.Group-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>runProbabilitySwitch</h4>
+<pre>public&nbsp;void&nbsp;runProbabilitySwitch(Group&nbsp;container,
+ Procedures.Procedure1&lt;RunnableProbabilitySwitch&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="runProbabilitySwitch-org.eclipse.app4mc.amalthea.model.ModeSwitchDefault-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>runProbabilitySwitch</h4>
+<pre>public&nbsp;void&nbsp;runProbabilitySwitch(ModeSwitchDefault&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;RunnableProbabilitySwitch&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="runProbabilitySwitch-org.eclipse.app4mc.amalthea.model.ModeSwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>runProbabilitySwitch</h4>
+<pre>public&nbsp;void&nbsp;runProbabilitySwitch(ModeSwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;RunnableProbabilitySwitch&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="runProbabilitySwitch-org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>runProbabilitySwitch</h4>
+<pre>public&nbsp;void&nbsp;runProbabilitySwitch(ProbabilitySwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;RunnableProbabilitySwitch&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="entry-org.eclipse.app4mc.amalthea.model.RunnableProbabilitySwitch-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entry</h4>
+<pre>public&nbsp;void&nbsp;entry(RunnableProbabilitySwitch&nbsp;container,
+ Procedures.Procedure1&lt;ProbabilitySwitchEntry&lt;RunnableItem&gt;&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="labelAccess-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>labelAccess</h4>
+<pre>public&nbsp;void&nbsp;labelAccess(Runnable&nbsp;container,
+ Procedures.Procedure1&lt;LabelAccess&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="labelAccess-org.eclipse.app4mc.amalthea.model.Group-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>labelAccess</h4>
+<pre>public&nbsp;void&nbsp;labelAccess(Group&nbsp;container,
+ Procedures.Procedure1&lt;LabelAccess&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="labelAccess-org.eclipse.app4mc.amalthea.model.ModeSwitchDefault-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>labelAccess</h4>
+<pre>public&nbsp;void&nbsp;labelAccess(ModeSwitchDefault&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;LabelAccess&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="labelAccess-org.eclipse.app4mc.amalthea.model.ModeSwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>labelAccess</h4>
+<pre>public&nbsp;void&nbsp;labelAccess(ModeSwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;LabelAccess&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="labelAccess-org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>labelAccess</h4>
+<pre>public&nbsp;void&nbsp;labelAccess(ProbabilitySwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;LabelAccess&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="runnableCall-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>runnableCall</h4>
+<pre>public&nbsp;void&nbsp;runnableCall(Runnable&nbsp;container,
+ Procedures.Procedure1&lt;RunnableCall&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="runnableCall-org.eclipse.app4mc.amalthea.model.Group-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>runnableCall</h4>
+<pre>public&nbsp;void&nbsp;runnableCall(Group&nbsp;container,
+ Procedures.Procedure1&lt;RunnableCall&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="runnableCall-org.eclipse.app4mc.amalthea.model.ModeSwitchDefault-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>runnableCall</h4>
+<pre>public&nbsp;void&nbsp;runnableCall(ModeSwitchDefault&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;RunnableCall&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="runnableCall-org.eclipse.app4mc.amalthea.model.ModeSwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>runnableCall</h4>
+<pre>public&nbsp;void&nbsp;runnableCall(ModeSwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;RunnableCall&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="runnableCall-org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>runnableCall</h4>
+<pre>public&nbsp;void&nbsp;runnableCall(ProbabilitySwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;RunnableCall&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="execNeed-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>execNeed</h4>
+<pre>public&nbsp;void&nbsp;execNeed(Runnable&nbsp;container,
+ Procedures.Procedure1&lt;ExecutionNeed&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="execNeed-org.eclipse.app4mc.amalthea.model.Group-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>execNeed</h4>
+<pre>public&nbsp;void&nbsp;execNeed(Group&nbsp;container,
+ Procedures.Procedure1&lt;ExecutionNeed&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="execNeed-org.eclipse.app4mc.amalthea.model.ModeSwitchDefault-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>execNeed</h4>
+<pre>public&nbsp;void&nbsp;execNeed(ModeSwitchDefault&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;ExecutionNeed&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="execNeed-org.eclipse.app4mc.amalthea.model.ModeSwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>execNeed</h4>
+<pre>public&nbsp;void&nbsp;execNeed(ModeSwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;ExecutionNeed&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="execNeed-org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>execNeed</h4>
+<pre>public&nbsp;void&nbsp;execNeed(ProbabilitySwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;ExecutionNeed&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="need-org.eclipse.app4mc.amalthea.model.ExecutionNeed-java.lang.String-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>need</h4>
+<pre>public&nbsp;void&nbsp;need(ExecutionNeed&nbsp;container,
+ String&nbsp;key,
+ IDiscreteValueDeviation&nbsp;need)</pre>
+</li>
+</ul>
+<a name="ticks-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ticks</h4>
+<pre>public&nbsp;void&nbsp;ticks(Runnable&nbsp;container,
+ Procedures.Procedure1&lt;Ticks&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="ticks-org.eclipse.app4mc.amalthea.model.Group-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ticks</h4>
+<pre>public&nbsp;void&nbsp;ticks(Group&nbsp;container,
+ Procedures.Procedure1&lt;Ticks&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="ticks-org.eclipse.app4mc.amalthea.model.ModeSwitchDefault-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ticks</h4>
+<pre>public&nbsp;void&nbsp;ticks(ModeSwitchDefault&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;Ticks&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="ticks-org.eclipse.app4mc.amalthea.model.ModeSwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ticks</h4>
+<pre>public&nbsp;void&nbsp;ticks(ModeSwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;Ticks&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="ticks-org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry-org.eclipse.xtext.xbase.lib.Procedures.Procedure1-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ticks</h4>
+<pre>public&nbsp;void&nbsp;ticks(ProbabilitySwitchEntry&lt;RunnableItem&gt;&nbsp;container,
+ Procedures.Procedure1&lt;Ticks&gt;&nbsp;initializer)</pre>
+</li>
+</ul>
+<a name="defaultDeviation-org.eclipse.app4mc.amalthea.model.Ticks-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>defaultDeviation</h4>
+<pre>public&nbsp;void&nbsp;defaultDeviation(Ticks&nbsp;container,
+ IDiscreteValueDeviation&nbsp;ticks)</pre>
+</li>
+</ul>
+<a name="defaultConstant-org.eclipse.app4mc.amalthea.model.Ticks-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>defaultConstant</h4>
+<pre>public&nbsp;void&nbsp;defaultConstant(Ticks&nbsp;container,
+ long&nbsp;ticks)</pre>
+</li>
+</ul>
+<a name="extended-org.eclipse.app4mc.amalthea.model.Ticks-org.eclipse.app4mc.amalthea.model.ProcessingUnitDefinition-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>extended</h4>
+<pre>public&nbsp;void&nbsp;extended(Ticks&nbsp;container,
+ ProcessingUnitDefinition&nbsp;puDef,
+ IDiscreteValueDeviation&nbsp;ticks)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/package-summary.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/package-summary.html
new file mode 100644
index 0000000..755195c
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/builder/package-summary.html
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>org.eclipse.app4mc.amalthea.model.builder</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.eclipse.app4mc.amalthea.model.builder</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="AmaltheaBuilder.html" title="class in org.eclipse.app4mc.amalthea.model.builder">AmaltheaBuilder</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="CommonElementsBuilder.html" title="class in org.eclipse.app4mc.amalthea.model.builder">CommonElementsBuilder</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="ConstraintsBuilder.html" title="class in org.eclipse.app4mc.amalthea.model.builder">ConstraintsBuilder</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="DatatypeBuilder.html" title="class in org.eclipse.app4mc.amalthea.model.builder">DatatypeBuilder</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="HardwareBuilder.html" title="class in org.eclipse.app4mc.amalthea.model.builder">HardwareBuilder</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="InstructionsBuilder.html" title="class in org.eclipse.app4mc.amalthea.model.builder">InstructionsBuilder</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">(0.9.3) use <code>Ticks</code> instead.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="MappingBuilder.html" title="class in org.eclipse.app4mc.amalthea.model.builder">MappingBuilder</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="OperatingSystemBuilder.html" title="class in org.eclipse.app4mc.amalthea.model.builder">OperatingSystemBuilder</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="SoftwareBuilder.html" title="class in org.eclipse.app4mc.amalthea.model.builder">SoftwareBuilder</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/io/AmaltheaLoader.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/io/AmaltheaLoader.html
new file mode 100644
index 0000000..3b93800
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/io/AmaltheaLoader.html
@@ -0,0 +1,188 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>AmaltheaLoader</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.io</div>
+<h2 title="Class AmaltheaLoader" class="title">Class AmaltheaLoader</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>AmaltheaLoader</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">AmaltheaLoader</span>
+extends Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#AmaltheaLoader--">AmaltheaLoader</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static Amalthea</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#loadFromFile-java.io.File-">loadFromFile</a></span>(File&nbsp;file)</code>
+<div class="block">Static method to load an AMALTHEA model from a file.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static Amalthea</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#loadFromFileNamed-java.lang.String-">loadFromFileNamed</a></span>(String&nbsp;pathname)</code>
+<div class="block">Static method to load an AMALTHEA model from a file with a given pathname
+ string.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static Amalthea</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#loadFromURI-org.eclipse.emf.common.util.URI-">loadFromURI</a></span>(URI&nbsp;uri)</code>
+<div class="block">Static method to load an AMALTHEA model from a file URI.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AmaltheaLoader--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AmaltheaLoader</h4>
+<pre>public&nbsp;AmaltheaLoader()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="loadFromFileNamed-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>loadFromFileNamed</h4>
+<pre>public static&nbsp;Amalthea&nbsp;loadFromFileNamed(String&nbsp;pathname)</pre>
+<div class="block">Static method to load an AMALTHEA model from a file with a given pathname
+ string.
+ <p>
+ Possible path names:
+ <ul>
+ <li>absolute (example: "d:/temp/model.amxmi")</li>
+ <li>relative to project folder (example: "input/model.amxmi")</li>
+ </ul></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>pathname</code> - String</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>AMALTHEA model - null if load failed</dd>
+</dl>
+</li>
+</ul>
+<a name="loadFromFile-java.io.File-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>loadFromFile</h4>
+<pre>public static&nbsp;Amalthea&nbsp;loadFromFile(File&nbsp;file)</pre>
+<div class="block">Static method to load an AMALTHEA model from a file.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>file</code> - standard Java file</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>AMALTHEA model - null if load failed</dd>
+</dl>
+</li>
+</ul>
+<a name="loadFromURI-org.eclipse.emf.common.util.URI-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>loadFromURI</h4>
+<pre>public static&nbsp;Amalthea&nbsp;loadFromURI(URI&nbsp;uri)</pre>
+<div class="block">Static method to load an AMALTHEA model from a file URI.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - org.eclipse.emf.common.util.URI</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>AMALTHEA model - null if load failed</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/io/AmaltheaWriter.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/io/AmaltheaWriter.html
new file mode 100644
index 0000000..0fdacff
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/io/AmaltheaWriter.html
@@ -0,0 +1,195 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>AmaltheaWriter</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.io</div>
+<h2 title="Class AmaltheaWriter" class="title">Class AmaltheaWriter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>AmaltheaWriter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">AmaltheaWriter</span>
+extends Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#AmaltheaWriter--">AmaltheaWriter</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#writeToFile-org.eclipse.app4mc.amalthea.model.Amalthea-java.io.File-">writeToFile</a></span>(Amalthea&nbsp;model,
+ File&nbsp;file)</code>
+<div class="block">Static method to save an AMALTHEA model to a file.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#writeToFileNamed-org.eclipse.app4mc.amalthea.model.Amalthea-java.lang.String-">writeToFileNamed</a></span>(Amalthea&nbsp;model,
+ String&nbsp;pathname)</code>
+<div class="block">Static method to save an AMALTHEA model to a file with a given pathname string.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#writeToURI-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.emf.common.util.URI-">writeToURI</a></span>(Amalthea&nbsp;model,
+ URI&nbsp;uri)</code>
+<div class="block">Static method to save an AMALTHEA model to a file URI.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AmaltheaWriter--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AmaltheaWriter</h4>
+<pre>public&nbsp;AmaltheaWriter()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="writeToFileNamed-org.eclipse.app4mc.amalthea.model.Amalthea-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>writeToFileNamed</h4>
+<pre>public static&nbsp;boolean&nbsp;writeToFileNamed(Amalthea&nbsp;model,
+ String&nbsp;pathname)</pre>
+<div class="block">Static method to save an AMALTHEA model to a file with a given pathname string.
+ <p>
+ Possible path names:
+ <ul>
+ <li>absolute (example: "d:/temp/model_new.amxmi")</li>
+ <li>relative to project folder (example: "output/model_new.amxmi")</li>
+ </ul></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>model</code> - source model</dd>
+<dd><code>pathname</code> - String</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>boolean - true if file is written successfully</dd>
+</dl>
+</li>
+</ul>
+<a name="writeToFile-org.eclipse.app4mc.amalthea.model.Amalthea-java.io.File-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>writeToFile</h4>
+<pre>public static&nbsp;boolean&nbsp;writeToFile(Amalthea&nbsp;model,
+ File&nbsp;file)</pre>
+<div class="block">Static method to save an AMALTHEA model to a file.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>model</code> - source model</dd>
+<dd><code>file</code> - standard Java file</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>boolean - true if file is written successfully</dd>
+</dl>
+</li>
+</ul>
+<a name="writeToURI-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.emf.common.util.URI-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>writeToURI</h4>
+<pre>public static&nbsp;boolean&nbsp;writeToURI(Amalthea&nbsp;model,
+ URI&nbsp;uri)</pre>
+<div class="block">Static method to save an AMALTHEA model to a file URI.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>model</code> - source model</dd>
+<dd><code>uri</code> - org.eclipse.emf.common.util.URI</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>boolean - true if file is written successfully</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/io/package-summary.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/io/package-summary.html
new file mode 100644
index 0000000..b2cf00b
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/io/package-summary.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>org.eclipse.app4mc.amalthea.model.io</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.eclipse.app4mc.amalthea.model.io</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="AmaltheaLoader.html" title="class in org.eclipse.app4mc.amalthea.model.io">AmaltheaLoader</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="AmaltheaWriter.html" title="class in org.eclipse.app4mc.amalthea.model.io">AmaltheaWriter</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/package-summary.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/package-summary.html
new file mode 100644
index 0000000..7e5eb7e
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/package-summary.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>org.eclipse.app4mc.amalthea.model</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.eclipse.app4mc.amalthea.model</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="AmaltheaIndex.html" title="class in org.eclipse.app4mc.amalthea.model">AmaltheaIndex</a></td>
+<td class="colLast">
+<div class="block">This class provides static methods for efficient model navigation, search and delete.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="AmaltheaMerger.html" title="class in org.eclipse.app4mc.amalthea.model">AmaltheaMerger</a></td>
+<td class="colLast">
+<div class="block">This class provides static methods to extend a model with major elements of a second model.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="AmaltheaServices.html" title="class in org.eclipse.app4mc.amalthea.model">AmaltheaServices</a></td>
+<td class="colLast">
+<div class="block">This class provides static methods that implement operations of the Amalthea EMF model.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/CustomPropertyUtil.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/CustomPropertyUtil.html
new file mode 100644
index 0000000..cc4d4f6
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/CustomPropertyUtil.html
@@ -0,0 +1,242 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:16 CET 2019 -->
+<title>CustomPropertyUtil</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.util</div>
+<h2 title="Class CustomPropertyUtil" class="title">Class CustomPropertyUtil</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>CustomPropertyUtil</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public final class <span class="typeNameLabel">CustomPropertyUtil</span>
+extends Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#CustomPropertyUtil--">CustomPropertyUtil</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static Integer</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#customGetInteger-org.eclipse.app4mc.amalthea.model.IAnnotatable-java.lang.String-">customGetInteger</a></span>(IAnnotatable&nbsp;object,
+ String&nbsp;key)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static IReferable</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#customGetReference-org.eclipse.app4mc.amalthea.model.IAnnotatable-java.lang.String-">customGetReference</a></span>(IAnnotatable&nbsp;object,
+ String&nbsp;key)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#customGetString-org.eclipse.app4mc.amalthea.model.IAnnotatable-java.lang.String-">customGetString</a></span>(IAnnotatable&nbsp;object,
+ String&nbsp;key)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#customGetTime-org.eclipse.app4mc.amalthea.model.IAnnotatable-java.lang.String-">customGetTime</a></span>(IAnnotatable&nbsp;object,
+ String&nbsp;key)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static Value</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#customPut-org.eclipse.app4mc.amalthea.model.IAnnotatable-java.lang.String-int-">customPut</a></span>(IAnnotatable&nbsp;object,
+ String&nbsp;key,
+ int&nbsp;num)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static Value</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#customPut-org.eclipse.app4mc.amalthea.model.IAnnotatable-java.lang.String-org.eclipse.app4mc.amalthea.model.IReferable-">customPut</a></span>(IAnnotatable&nbsp;object,
+ String&nbsp;key,
+ IReferable&nbsp;reference)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static Value</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#customPut-org.eclipse.app4mc.amalthea.model.IAnnotatable-java.lang.String-java.lang.String-">customPut</a></span>(IAnnotatable&nbsp;object,
+ String&nbsp;key,
+ String&nbsp;str)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static Value</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#customPut-org.eclipse.app4mc.amalthea.model.IAnnotatable-java.lang.String-org.eclipse.app4mc.amalthea.model.Time-">customPut</a></span>(IAnnotatable&nbsp;object,
+ String&nbsp;key,
+ Time&nbsp;time)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="CustomPropertyUtil--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CustomPropertyUtil</h4>
+<pre>public&nbsp;CustomPropertyUtil()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="customPut-org.eclipse.app4mc.amalthea.model.IAnnotatable-java.lang.String-int-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>customPut</h4>
+<pre>public static&nbsp;Value&nbsp;customPut(IAnnotatable&nbsp;object,
+ String&nbsp;key,
+ int&nbsp;num)</pre>
+</li>
+</ul>
+<a name="customPut-org.eclipse.app4mc.amalthea.model.IAnnotatable-java.lang.String-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>customPut</h4>
+<pre>public static&nbsp;Value&nbsp;customPut(IAnnotatable&nbsp;object,
+ String&nbsp;key,
+ String&nbsp;str)</pre>
+</li>
+</ul>
+<a name="customPut-org.eclipse.app4mc.amalthea.model.IAnnotatable-java.lang.String-org.eclipse.app4mc.amalthea.model.Time-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>customPut</h4>
+<pre>public static&nbsp;Value&nbsp;customPut(IAnnotatable&nbsp;object,
+ String&nbsp;key,
+ Time&nbsp;time)</pre>
+</li>
+</ul>
+<a name="customPut-org.eclipse.app4mc.amalthea.model.IAnnotatable-java.lang.String-org.eclipse.app4mc.amalthea.model.IReferable-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>customPut</h4>
+<pre>public static&nbsp;Value&nbsp;customPut(IAnnotatable&nbsp;object,
+ String&nbsp;key,
+ IReferable&nbsp;reference)</pre>
+</li>
+</ul>
+<a name="customGetInteger-org.eclipse.app4mc.amalthea.model.IAnnotatable-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>customGetInteger</h4>
+<pre>public static&nbsp;Integer&nbsp;customGetInteger(IAnnotatable&nbsp;object,
+ String&nbsp;key)</pre>
+</li>
+</ul>
+<a name="customGetString-org.eclipse.app4mc.amalthea.model.IAnnotatable-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>customGetString</h4>
+<pre>public static&nbsp;String&nbsp;customGetString(IAnnotatable&nbsp;object,
+ String&nbsp;key)</pre>
+</li>
+</ul>
+<a name="customGetTime-org.eclipse.app4mc.amalthea.model.IAnnotatable-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>customGetTime</h4>
+<pre>public static&nbsp;Time&nbsp;customGetTime(IAnnotatable&nbsp;object,
+ String&nbsp;key)</pre>
+</li>
+</ul>
+<a name="customGetReference-org.eclipse.app4mc.amalthea.model.IAnnotatable-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>customGetReference</h4>
+<pre>public static&nbsp;IReferable&nbsp;customGetReference(IAnnotatable&nbsp;object,
+ String&nbsp;key)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/DeploymentUtil.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/DeploymentUtil.html
new file mode 100644
index 0000000..2231d93
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/DeploymentUtil.html
@@ -0,0 +1,342 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:16 CET 2019 -->
+<title>DeploymentUtil</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.util</div>
+<h2 title="Class DeploymentUtil" class="title">Class DeploymentUtil</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>DeploymentUtil</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DeploymentUtil</span>
+extends Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#DeploymentUtil--">DeploymentUtil</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static Set&lt;ProcessingUnit&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getAssignedCoreForProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.Amalthea-">getAssignedCoreForProcess</a></span>(Process&nbsp;process,
+ Amalthea&nbsp;model)</code>
+<div class="block">Returns the cores the process is assigned to.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>List&lt;HwFeatureCategory&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getFeatureCategories-org.eclipse.app4mc.amalthea.model.ProcessingUnitDefinition-">getFeatureCategories</a></span>(ProcessingUnitDefinition&nbsp;procUnitDef)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static Set&lt;ISR&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getISRsMappedToCore-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.Amalthea-">getISRsMappedToCore</a></span>(ProcessingUnit&nbsp;core,
+ Amalthea&nbsp;model)</code>
+<div class="block">Returns a set of all ISR mapped to that core</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static Set&lt;Memory&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getLabelMapping-org.eclipse.app4mc.amalthea.model.Label-">getLabelMapping</a></span>(Label&nbsp;label)</code>
+<div class="block">Set of memories the label is mapped to (should be only one!)</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static Set&lt;Process&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getProcessesMappedToCore-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.Amalthea-">getProcessesMappedToCore</a></span>(ProcessingUnit&nbsp;core,
+ Amalthea&nbsp;model)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>List&lt;ProcessingUnitDefinition&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getProcessingUnitDefinitionsForHwCategories-org.eclipse.app4mc.amalthea.model.HwFeatureCategory-java.util.List-">getProcessingUnitDefinitionsForHwCategories</a></span>(HwFeatureCategory&nbsp;hwFeatureCat,
+ List&lt;ProcessingUnitDefinition&gt;&nbsp;procUnitDefinitons)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>List&lt;ProcessingUnitDefinition&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getProcessingUnitDefinitionsForHwFeature-org.eclipse.app4mc.amalthea.model.HwFeature-java.util.List-">getProcessingUnitDefinitionsForHwFeature</a></span>(HwFeature&nbsp;feature,
+ List&lt;ProcessingUnitDefinition&gt;&nbsp;procUnitDefinitons)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static List&lt;TaskAllocation&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getTaskAllocations-org.eclipse.app4mc.amalthea.model.Task-org.eclipse.app4mc.amalthea.model.Amalthea-">getTaskAllocations</a></span>(Task&nbsp;task,
+ Amalthea&nbsp;model)</code>
+<div class="block">Returns a list of all allocations of a task</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static Set&lt;Task&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getTasksMappedToCore-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.Amalthea-">getTasksMappedToCore</a></span>(ProcessingUnit&nbsp;core,
+ Amalthea&nbsp;model)</code>
+<div class="block">Returns a set of tasks mapped to a core.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#isMapped-org.eclipse.app4mc.amalthea.model.Label-">isMapped</a></span>(Label&nbsp;label)</code>
+<div class="block">Returns true if at least a label mapping exists</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>static MemoryMapping</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#setLabelMapping-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.app4mc.amalthea.model.Memory-org.eclipse.app4mc.amalthea.model.Amalthea-">setLabelMapping</a></span>(Label&nbsp;label,
+ Memory&nbsp;mem,
+ Amalthea&nbsp;model)</code>
+<div class="block">Returns a created LabelMapping element which was already added to the model</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DeploymentUtil--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DeploymentUtil</h4>
+<pre>public&nbsp;DeploymentUtil()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getProcessesMappedToCore-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.Amalthea-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProcessesMappedToCore</h4>
+<pre>public static&nbsp;Set&lt;Process&gt;&nbsp;getProcessesMappedToCore(ProcessingUnit&nbsp;core,
+ Amalthea&nbsp;model)</pre>
+</li>
+</ul>
+<a name="getTasksMappedToCore-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.Amalthea-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTasksMappedToCore</h4>
+<pre>public static&nbsp;Set&lt;Task&gt;&nbsp;getTasksMappedToCore(ProcessingUnit&nbsp;core,
+ Amalthea&nbsp;model)</pre>
+<div class="block">Returns a set of tasks mapped to a core. Depends on responsibilities of
+ schedulers and the task allocated to them Assumption: Scheduler
+ responsibilities are set empty core affinities are ignored otherwise the
+ intersection of core affinity and scheduler responsibility is returned</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Set of tasks</dd>
+</dl>
+</li>
+</ul>
+<a name="getISRsMappedToCore-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.Amalthea-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getISRsMappedToCore</h4>
+<pre>public static&nbsp;Set&lt;ISR&gt;&nbsp;getISRsMappedToCore(ProcessingUnit&nbsp;core,
+ Amalthea&nbsp;model)</pre>
+<div class="block">Returns a set of all ISR mapped to that core</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Set of interrupt service routines (ISR)</dd>
+</dl>
+</li>
+</ul>
+<a name="getTaskAllocations-org.eclipse.app4mc.amalthea.model.Task-org.eclipse.app4mc.amalthea.model.Amalthea-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTaskAllocations</h4>
+<pre>public static&nbsp;List&lt;TaskAllocation&gt;&nbsp;getTaskAllocations(Task&nbsp;task,
+ Amalthea&nbsp;model)</pre>
+<div class="block">Returns a list of all allocations of a task</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of task allocations</dd>
+</dl>
+</li>
+</ul>
+<a name="isMapped-org.eclipse.app4mc.amalthea.model.Label-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isMapped</h4>
+<pre>public static&nbsp;boolean&nbsp;isMapped(Label&nbsp;label)</pre>
+<div class="block">Returns true if at least a label mapping exists</div>
+</li>
+</ul>
+<a name="getLabelMapping-org.eclipse.app4mc.amalthea.model.Label-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLabelMapping</h4>
+<pre>public static&nbsp;Set&lt;Memory&gt;&nbsp;getLabelMapping(Label&nbsp;label)</pre>
+<div class="block">Set of memories the label is mapped to (should be only one!)</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Set of Memories</dd>
+</dl>
+</li>
+</ul>
+<a name="setLabelMapping-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.app4mc.amalthea.model.Memory-org.eclipse.app4mc.amalthea.model.Amalthea-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setLabelMapping</h4>
+<pre>public static&nbsp;MemoryMapping&nbsp;setLabelMapping(Label&nbsp;label,
+ Memory&nbsp;mem,
+ Amalthea&nbsp;model)</pre>
+<div class="block">Returns a created LabelMapping element which was already added to the model</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>MemoryMapping</dd>
+</dl>
+</li>
+</ul>
+<a name="getAssignedCoreForProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.Amalthea-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAssignedCoreForProcess</h4>
+<pre>public static&nbsp;Set&lt;ProcessingUnit&gt;&nbsp;getAssignedCoreForProcess(Process&nbsp;process,
+ Amalthea&nbsp;model)</pre>
+<div class="block">Returns the cores the process is assigned to. Empty core affinities are
+ ignored, otherwise the intersection of core affinity and scheduler
+ responsibility is returned.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - Task or ISR</dd>
+<dd><code>model</code> - the containing model</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Set of cores</dd>
+</dl>
+</li>
+</ul>
+<a name="getFeatureCategories-org.eclipse.app4mc.amalthea.model.ProcessingUnitDefinition-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFeatureCategories</h4>
+<pre>public&nbsp;List&lt;HwFeatureCategory&gt;&nbsp;getFeatureCategories(ProcessingUnitDefinition&nbsp;procUnitDef)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>procUnitDef</code> - processing unit definition</dd>
+</dl>
+</li>
+</ul>
+<a name="getProcessingUnitDefinitionsForHwCategories-org.eclipse.app4mc.amalthea.model.HwFeatureCategory-java.util.List-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProcessingUnitDefinitionsForHwCategories</h4>
+<pre>public&nbsp;List&lt;ProcessingUnitDefinition&gt;&nbsp;getProcessingUnitDefinitionsForHwCategories(HwFeatureCategory&nbsp;hwFeatureCat,
+ List&lt;ProcessingUnitDefinition&gt;&nbsp;procUnitDefinitons)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>hwFeatureCat</code> - selection criteria</dd>
+<dd><code>procUnitDefinitons</code> - list of potential definitions</dd>
+</dl>
+</li>
+</ul>
+<a name="getProcessingUnitDefinitionsForHwFeature-org.eclipse.app4mc.amalthea.model.HwFeature-java.util.List-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getProcessingUnitDefinitionsForHwFeature</h4>
+<pre>public&nbsp;List&lt;ProcessingUnitDefinition&gt;&nbsp;getProcessingUnitDefinitionsForHwFeature(HwFeature&nbsp;feature,
+ List&lt;ProcessingUnitDefinition&gt;&nbsp;procUnitDefinitons)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>feature</code> - selection criteria</dd>
+<dd><code>procUnitDefinitons</code> - list of potential definitions</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/FactoryUtil.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/FactoryUtil.html
new file mode 100644
index 0000000..17ad7c0
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/FactoryUtil.html
@@ -0,0 +1,448 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>FactoryUtil</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.util</div>
+<h2 title="Class FactoryUtil" class="title">Class FactoryUtil</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>FactoryUtil</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">FactoryUtil</span>
+extends Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#FactoryUtil--">FactoryUtil</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static DataRate</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#createDataRate-long-org.eclipse.app4mc.amalthea.model.DataRateUnit-">createDataRate</a></span>(long&nbsp;value,
+ DataRateUnit&nbsp;unit)</code>
+<div class="block">Creates a data rate out of a value and a unit</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static DataSize</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#createDataSize-long-org.eclipse.app4mc.amalthea.model.DataSizeUnit-">createDataSize</a></span>(long&nbsp;value,
+ DataSizeUnit&nbsp;unit)</code>
+<div class="block">Creates a data size out of a value and a unit</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static DiscreteValueBoundaries</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#createDiscreteValueBoundaries-long-long-">createDiscreteValueBoundaries</a></span>(long&nbsp;min,
+ long&nbsp;max)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static DiscreteValueConstant</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#createDiscreteValueConstant-long-">createDiscreteValueConstant</a></span>(long&nbsp;value)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static DiscreteValueGaussDistribution</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#createDiscreteValueGaussDistribution-double-double-">createDiscreteValueGaussDistribution</a></span>(double&nbsp;mean,
+ double&nbsp;sd)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static DiscreteValueGaussDistribution</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#createDiscreteValueGaussDistribution-double-double-java.lang.Long-java.lang.Long-">createDiscreteValueGaussDistribution</a></span>(double&nbsp;mean,
+ double&nbsp;sd,
+ Long&nbsp;min,
+ Long&nbsp;max)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static ExecutionNeed</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#createExecutionNeed-org.eclipse.app4mc.amalthea.model.HwFeature-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-">createExecutionNeed</a></span>(HwFeature&nbsp;feature,
+ IDiscreteValueDeviation&nbsp;usages)</code>
+<div class="block">Creates ExecutionNeed for a feature, need set.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static ExecutionNeed</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#createExecutionNeed-java.lang.String-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-">createExecutionNeed</a></span>(String&nbsp;featureCategory,
+ IDiscreteValueDeviation&nbsp;usages)</code>
+<div class="block">Creates ExecutionNeed for a featureCategoryName, need set.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static Frequency</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#createFrequency-double-org.eclipse.app4mc.amalthea.model.FrequencyUnit-">createFrequency</a></span>(double&nbsp;value,
+ FrequencyUnit&nbsp;unit)</code>
+<div class="block">Creates a frequency out of a value and a unit</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>static DiscreteValueConstant</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#createLatency-long-">createLatency</a></span>(long&nbsp;value)</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#createTime-java.math.BigInteger-java.lang.String-">createTime</a></span>(BigInteger&nbsp;value,
+ String&nbsp;unit)</code>
+<div class="block">Creates a time out of a value and a unit given as String.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#createTime-java.math.BigInteger-org.eclipse.app4mc.amalthea.model.TimeUnit-">createTime</a></span>(BigInteger&nbsp;value,
+ TimeUnit&nbsp;unit)</code>
+<div class="block">Creates a time out of a value and a unit</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#createTime-long-java.lang.String-">createTime</a></span>(long&nbsp;value,
+ String&nbsp;unit)</code>
+<div class="block">Creates a time out of a value and a unit given as String.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#createTime-long-org.eclipse.app4mc.amalthea.model.TimeUnit-">createTime</a></span>(long&nbsp;value,
+ TimeUnit&nbsp;unit)</code>
+<div class="block">Creates a time out of a value and a unit</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#createTime-java.lang.String-">createTime</a></span>(String&nbsp;timeString)</code>
+<div class="block">Creates a Time object parsed from a text representation.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#createTime-org.eclipse.app4mc.amalthea.model.Time-">createTime</a></span>(Time&nbsp;inputTime)</code>
+<div class="block">Creates a new time based on a time</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>static TypeRef</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#createTypeRef-org.eclipse.app4mc.amalthea.model.TypeDefinition-">createTypeRef</a></span>(TypeDefinition&nbsp;typeDefinition)</code>
+<div class="block">Creates a TypeRef object that refers to a type definition</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>static Voltage</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#createVoltage-double-org.eclipse.app4mc.amalthea.model.VoltageUnit-">createVoltage</a></span>(double&nbsp;value,
+ VoltageUnit&nbsp;unit)</code>
+<div class="block">Creates a voltage out of a value and a unit</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>static DiscreteValueWeibullEstimatorsDistribution</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#createWeibullDistribution-long-double-long-double-">createWeibullDistribution</a></span>(long&nbsp;min,
+ double&nbsp;avg,
+ long&nbsp;max,
+ double&nbsp;promille)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="FactoryUtil--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FactoryUtil</h4>
+<pre>public&nbsp;FactoryUtil()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="createDataSize-long-org.eclipse.app4mc.amalthea.model.DataSizeUnit-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createDataSize</h4>
+<pre>public static&nbsp;DataSize&nbsp;createDataSize(long&nbsp;value,
+ DataSizeUnit&nbsp;unit)</pre>
+<div class="block">Creates a data size out of a value and a unit</div>
+</li>
+</ul>
+<a name="createDataRate-long-org.eclipse.app4mc.amalthea.model.DataRateUnit-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createDataRate</h4>
+<pre>public static&nbsp;DataRate&nbsp;createDataRate(long&nbsp;value,
+ DataRateUnit&nbsp;unit)</pre>
+<div class="block">Creates a data rate out of a value and a unit</div>
+</li>
+</ul>
+<a name="createFrequency-double-org.eclipse.app4mc.amalthea.model.FrequencyUnit-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFrequency</h4>
+<pre>public static&nbsp;Frequency&nbsp;createFrequency(double&nbsp;value,
+ FrequencyUnit&nbsp;unit)</pre>
+<div class="block">Creates a frequency out of a value and a unit</div>
+</li>
+</ul>
+<a name="createVoltage-double-org.eclipse.app4mc.amalthea.model.VoltageUnit-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createVoltage</h4>
+<pre>public static&nbsp;Voltage&nbsp;createVoltage(double&nbsp;value,
+ VoltageUnit&nbsp;unit)</pre>
+<div class="block">Creates a voltage out of a value and a unit</div>
+</li>
+</ul>
+<a name="createTime-org.eclipse.app4mc.amalthea.model.Time-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createTime</h4>
+<pre>public static&nbsp;Time&nbsp;createTime(Time&nbsp;inputTime)</pre>
+<div class="block">Creates a new time based on a time</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>inputTime</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>New time object</dd>
+</dl>
+</li>
+</ul>
+<a name="createTime-long-org.eclipse.app4mc.amalthea.model.TimeUnit-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createTime</h4>
+<pre>public static&nbsp;Time&nbsp;createTime(long&nbsp;value,
+ TimeUnit&nbsp;unit)</pre>
+<div class="block">Creates a time out of a value and a unit</div>
+</li>
+</ul>
+<a name="createTime-java.math.BigInteger-org.eclipse.app4mc.amalthea.model.TimeUnit-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createTime</h4>
+<pre>public static&nbsp;Time&nbsp;createTime(BigInteger&nbsp;value,
+ TimeUnit&nbsp;unit)</pre>
+<div class="block">Creates a time out of a value and a unit</div>
+</li>
+</ul>
+<a name="createTime-long-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createTime</h4>
+<pre>public static&nbsp;Time&nbsp;createTime(long&nbsp;value,
+ String&nbsp;unit)</pre>
+<div class="block">Creates a time out of a value and a unit given as String.</div>
+</li>
+</ul>
+<a name="createTime-java.math.BigInteger-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createTime</h4>
+<pre>public static&nbsp;Time&nbsp;createTime(BigInteger&nbsp;value,
+ String&nbsp;unit)</pre>
+<div class="block">Creates a time out of a value and a unit given as String.</div>
+</li>
+</ul>
+<a name="createTime-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createTime</h4>
+<pre>public static&nbsp;Time&nbsp;createTime(String&nbsp;timeString)</pre>
+<div class="block">Creates a Time object parsed from a text representation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timeString</code> - string representation of a time (number followed by time unit s, ms, us, ns or ps)</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The new Time object</dd>
+</dl>
+</li>
+</ul>
+<a name="createTypeRef-org.eclipse.app4mc.amalthea.model.TypeDefinition-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createTypeRef</h4>
+<pre>public static&nbsp;TypeRef&nbsp;createTypeRef(TypeDefinition&nbsp;typeDefinition)</pre>
+<div class="block">Creates a TypeRef object that refers to a type definition</div>
+</li>
+</ul>
+<a name="createDiscreteValueConstant-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createDiscreteValueConstant</h4>
+<pre>public static&nbsp;DiscreteValueConstant&nbsp;createDiscreteValueConstant(long&nbsp;value)</pre>
+</li>
+</ul>
+<a name="createDiscreteValueBoundaries-long-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createDiscreteValueBoundaries</h4>
+<pre>public static&nbsp;DiscreteValueBoundaries&nbsp;createDiscreteValueBoundaries(long&nbsp;min,
+ long&nbsp;max)</pre>
+</li>
+</ul>
+<a name="createDiscreteValueGaussDistribution-double-double-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createDiscreteValueGaussDistribution</h4>
+<pre>public static&nbsp;DiscreteValueGaussDistribution&nbsp;createDiscreteValueGaussDistribution(double&nbsp;mean,
+ double&nbsp;sd)</pre>
+</li>
+</ul>
+<a name="createDiscreteValueGaussDistribution-double-double-java.lang.Long-java.lang.Long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createDiscreteValueGaussDistribution</h4>
+<pre>public static&nbsp;DiscreteValueGaussDistribution&nbsp;createDiscreteValueGaussDistribution(double&nbsp;mean,
+ double&nbsp;sd,
+ Long&nbsp;min,
+ Long&nbsp;max)</pre>
+</li>
+</ul>
+<a name="createWeibullDistribution-long-double-long-double-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createWeibullDistribution</h4>
+<pre>public static&nbsp;DiscreteValueWeibullEstimatorsDistribution&nbsp;createWeibullDistribution(long&nbsp;min,
+ double&nbsp;avg,
+ long&nbsp;max,
+ double&nbsp;promille)</pre>
+</li>
+</ul>
+<a name="createExecutionNeed-java.lang.String-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createExecutionNeed</h4>
+<pre>public static&nbsp;ExecutionNeed&nbsp;createExecutionNeed(String&nbsp;featureCategory,
+ IDiscreteValueDeviation&nbsp;usages)</pre>
+<div class="block">Creates ExecutionNeed for a featureCategoryName, need set.</div>
+</li>
+</ul>
+<a name="createExecutionNeed-org.eclipse.app4mc.amalthea.model.HwFeature-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createExecutionNeed</h4>
+<pre>public static&nbsp;ExecutionNeed&nbsp;createExecutionNeed(HwFeature&nbsp;feature,
+ IDiscreteValueDeviation&nbsp;usages)</pre>
+<div class="block">Creates ExecutionNeed for a feature, need set.</div>
+</li>
+</ul>
+<a name="createLatency-long-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>createLatency</h4>
+<pre>public static&nbsp;DiscreteValueConstant&nbsp;createLatency(long&nbsp;value)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/HardwareUtil.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/HardwareUtil.html
new file mode 100644
index 0000000..a6b1026
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/HardwareUtil.html
@@ -0,0 +1,318 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>HardwareUtil</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.util</div>
+<h2 title="Class HardwareUtil" class="title">Class HardwareUtil</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>HardwareUtil</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">HardwareUtil</span>
+extends Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#HardwareUtil--">HardwareUtil</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#calculateHwAccessPathTime-org.eclipse.app4mc.amalthea.model.HwAccessElement-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.AccessDirection-">calculateHwAccessPathTime</a></span>(HwAccessElement&nbsp;accessElement,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;timeType,
+ <a href="RuntimeUtil.AccessDirection.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.AccessDirection</a>&nbsp;direction)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static Long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#calculateLatency-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">calculateLatency</a></span>(IDiscreteValueDeviation&nbsp;latency,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;timeType)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#calculateLatencyPathTime-org.eclipse.app4mc.amalthea.model.HwAccessElement-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.AccessDirection-">calculateLatencyPathTime</a></span>(HwAccessElement&nbsp;accessElement,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;timeType,
+ <a href="RuntimeUtil.AccessDirection.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.AccessDirection</a>&nbsp;direction)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static List&lt;HwAccessElement&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getAccessElementsToDestination-org.eclipse.app4mc.amalthea.model.HwDestination-org.eclipse.app4mc.amalthea.model.Amalthea-">getAccessElementsToDestination</a></span>(HwDestination&nbsp;dest,
+ Amalthea&nbsp;model)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static Map&lt;ProcessingUnit,HashMap&lt;HwDestination,Time&gt;&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getAccessTimes-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.AccessDirection-">getAccessTimes</a></span>(Amalthea&nbsp;model,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;timeType,
+ <a href="RuntimeUtil.AccessDirection.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.AccessDirection</a>&nbsp;direction)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static List&lt;ProcessingUnit&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getAllProcessingUnitsForProcessingUnitDefinition-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.ProcessingUnitDefinition-">getAllProcessingUnitsForProcessingUnitDefinition</a></span>(Amalthea&nbsp;model,
+ ProcessingUnitDefinition&nbsp;puDef)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static Frequency</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getFrequencyOfModule-org.eclipse.app4mc.amalthea.model.HwModule-">getFrequencyOfModule</a></span>(HwModule&nbsp;module)</code>
+<div class="block">Returns the frequency of a specific module</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getFrequencyOfModuleInHz-org.eclipse.app4mc.amalthea.model.HwModule-">getFrequencyOfModuleInHz</a></span>(HwModule&nbsp;module)</code>
+<div class="block">Returns the frequency of a specific module in Hertz</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static Map&lt;Memory,Long&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getMemoryAccessLatenciesCycles-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getMemoryAccessLatenciesCycles</a></span>(Amalthea&nbsp;model,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;timeType)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>static Map&lt;Memory,Time&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getMemoryAccessLatencyTime-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getMemoryAccessLatencyTime</a></span>(Amalthea&nbsp;model,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;timeType)</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>static DataRate</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getMinDataRateOfHwAccessPath-org.eclipse.app4mc.amalthea.model.HwAccessPath-">getMinDataRateOfHwAccessPath</a></span>(HwAccessPath&nbsp;path)</code>
+<div class="block">Computes the minimum data rate of an access path</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>static &lt;T extends HwModule&gt;<br>List&lt;T&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getModulesFromHwModel-java.lang.Class-org.eclipse.app4mc.amalthea.model.Amalthea-">getModulesFromHwModel</a></span>(Class&lt;T&gt;&nbsp;targetClass,
+ Amalthea&nbsp;model)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>static &lt;T extends HwModule&gt;<br>List&lt;T&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getModulesFromHWStructure-java.lang.Class-org.eclipse.app4mc.amalthea.model.HwStructure-">getModulesFromHWStructure</a></span>(Class&lt;T&gt;&nbsp;targetClass,
+ HwStructure&nbsp;structure)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="HardwareUtil--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>HardwareUtil</h4>
+<pre>public&nbsp;HardwareUtil()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getModulesFromHwModel-java.lang.Class-org.eclipse.app4mc.amalthea.model.Amalthea-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getModulesFromHwModel</h4>
+<pre>public static&nbsp;&lt;T extends HwModule&gt;&nbsp;List&lt;T&gt;&nbsp;getModulesFromHwModel(Class&lt;T&gt;&nbsp;targetClass,
+ Amalthea&nbsp;model)</pre>
+</li>
+</ul>
+<a name="getModulesFromHWStructure-java.lang.Class-org.eclipse.app4mc.amalthea.model.HwStructure-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getModulesFromHWStructure</h4>
+<pre>public static&nbsp;&lt;T extends HwModule&gt;&nbsp;List&lt;T&gt;&nbsp;getModulesFromHWStructure(Class&lt;T&gt;&nbsp;targetClass,
+ HwStructure&nbsp;structure)</pre>
+</li>
+</ul>
+<a name="getAllProcessingUnitsForProcessingUnitDefinition-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.ProcessingUnitDefinition-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAllProcessingUnitsForProcessingUnitDefinition</h4>
+<pre>public static&nbsp;List&lt;ProcessingUnit&gt;&nbsp;getAllProcessingUnitsForProcessingUnitDefinition(Amalthea&nbsp;model,
+ ProcessingUnitDefinition&nbsp;puDef)</pre>
+</li>
+</ul>
+<a name="getMemoryAccessLatenciesCycles-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMemoryAccessLatenciesCycles</h4>
+<pre>public static&nbsp;Map&lt;Memory,Long&gt;&nbsp;getMemoryAccessLatenciesCycles(Amalthea&nbsp;model,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;timeType)</pre>
+</li>
+</ul>
+<a name="getMemoryAccessLatencyTime-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMemoryAccessLatencyTime</h4>
+<pre>public static&nbsp;Map&lt;Memory,Time&gt;&nbsp;getMemoryAccessLatencyTime(Amalthea&nbsp;model,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;timeType)</pre>
+</li>
+</ul>
+<a name="getAccessElementsToDestination-org.eclipse.app4mc.amalthea.model.HwDestination-org.eclipse.app4mc.amalthea.model.Amalthea-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAccessElementsToDestination</h4>
+<pre>public static&nbsp;List&lt;HwAccessElement&gt;&nbsp;getAccessElementsToDestination(HwDestination&nbsp;dest,
+ Amalthea&nbsp;model)</pre>
+</li>
+</ul>
+<a name="getAccessTimes-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.AccessDirection-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAccessTimes</h4>
+<pre>public static&nbsp;Map&lt;ProcessingUnit,HashMap&lt;HwDestination,Time&gt;&gt;&nbsp;getAccessTimes(Amalthea&nbsp;model,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;timeType,
+ <a href="RuntimeUtil.AccessDirection.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.AccessDirection</a>&nbsp;direction)</pre>
+</li>
+</ul>
+<a name="calculateLatencyPathTime-org.eclipse.app4mc.amalthea.model.HwAccessElement-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.AccessDirection-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calculateLatencyPathTime</h4>
+<pre>public static&nbsp;Time&nbsp;calculateLatencyPathTime(HwAccessElement&nbsp;accessElement,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;timeType,
+ <a href="RuntimeUtil.AccessDirection.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.AccessDirection</a>&nbsp;direction)</pre>
+</li>
+</ul>
+<a name="calculateHwAccessPathTime-org.eclipse.app4mc.amalthea.model.HwAccessElement-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.AccessDirection-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calculateHwAccessPathTime</h4>
+<pre>public static&nbsp;Time&nbsp;calculateHwAccessPathTime(HwAccessElement&nbsp;accessElement,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;timeType,
+ <a href="RuntimeUtil.AccessDirection.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.AccessDirection</a>&nbsp;direction)</pre>
+</li>
+</ul>
+<a name="calculateLatency-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calculateLatency</h4>
+<pre>public static&nbsp;Long&nbsp;calculateLatency(IDiscreteValueDeviation&nbsp;latency,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;timeType)</pre>
+</li>
+</ul>
+<a name="getMinDataRateOfHwAccessPath-org.eclipse.app4mc.amalthea.model.HwAccessPath-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMinDataRateOfHwAccessPath</h4>
+<pre>public static&nbsp;DataRate&nbsp;getMinDataRateOfHwAccessPath(HwAccessPath&nbsp;path)</pre>
+<div class="block">Computes the minimum data rate of an access path</div>
+</li>
+</ul>
+<a name="getFrequencyOfModule-org.eclipse.app4mc.amalthea.model.HwModule-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFrequencyOfModule</h4>
+<pre>public static&nbsp;Frequency&nbsp;getFrequencyOfModule(HwModule&nbsp;module)</pre>
+<div class="block">Returns the frequency of a specific module</div>
+</li>
+</ul>
+<a name="getFrequencyOfModuleInHz-org.eclipse.app4mc.amalthea.model.HwModule-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getFrequencyOfModuleInHz</h4>
+<pre>public static&nbsp;long&nbsp;getFrequencyOfModuleInHz(HwModule&nbsp;module)</pre>
+<div class="block">Returns the frequency of a specific module in Hertz</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/ModelUtil.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/ModelUtil.html
new file mode 100644
index 0000000..6cae4af
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/ModelUtil.html
@@ -0,0 +1,270 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>ModelUtil</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.util</div>
+<h2 title="Class ModelUtil" class="title">Class ModelUtil</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>ModelUtil</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">ModelUtil</span>
+extends Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#ModelUtil--">ModelUtil</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static CommonElements</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getOrCreateCommonElements-org.eclipse.app4mc.amalthea.model.Amalthea-">getOrCreateCommonElements</a></span>(Amalthea&nbsp;model)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static ComponentsModel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getOrCreateComponentsModel-org.eclipse.app4mc.amalthea.model.Amalthea-">getOrCreateComponentsModel</a></span>(Amalthea&nbsp;model)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static ConfigModel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getOrCreateConfigModel-org.eclipse.app4mc.amalthea.model.Amalthea-">getOrCreateConfigModel</a></span>(Amalthea&nbsp;model)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static ConstraintsModel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getOrCreateConstraintsModel-org.eclipse.app4mc.amalthea.model.Amalthea-">getOrCreateConstraintsModel</a></span>(Amalthea&nbsp;model)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static EventModel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getOrCreateEventModel-org.eclipse.app4mc.amalthea.model.Amalthea-">getOrCreateEventModel</a></span>(Amalthea&nbsp;model)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static HWModel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getOrCreateHwModel-org.eclipse.app4mc.amalthea.model.Amalthea-">getOrCreateHwModel</a></span>(Amalthea&nbsp;model)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static MappingModel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getOrCreateMappingModel-org.eclipse.app4mc.amalthea.model.Amalthea-">getOrCreateMappingModel</a></span>(Amalthea&nbsp;model)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static MeasurementModel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getOrCreateMeasurementModel-org.eclipse.app4mc.amalthea.model.Amalthea-">getOrCreateMeasurementModel</a></span>(Amalthea&nbsp;model)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static OSModel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getOrCreateOsModel-org.eclipse.app4mc.amalthea.model.Amalthea-">getOrCreateOsModel</a></span>(Amalthea&nbsp;model)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>static PropertyConstraintsModel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getOrCreatePropertyConstraintsModel-org.eclipse.app4mc.amalthea.model.Amalthea-">getOrCreatePropertyConstraintsModel</a></span>(Amalthea&nbsp;model)</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>static StimuliModel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getOrCreateStimuliModel-org.eclipse.app4mc.amalthea.model.Amalthea-">getOrCreateStimuliModel</a></span>(Amalthea&nbsp;model)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>static SWModel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getOrCreateSwModel-org.eclipse.app4mc.amalthea.model.Amalthea-">getOrCreateSwModel</a></span>(Amalthea&nbsp;model)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ModelUtil--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ModelUtil</h4>
+<pre>public&nbsp;ModelUtil()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getOrCreateCommonElements-org.eclipse.app4mc.amalthea.model.Amalthea-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrCreateCommonElements</h4>
+<pre>public static&nbsp;CommonElements&nbsp;getOrCreateCommonElements(Amalthea&nbsp;model)</pre>
+</li>
+</ul>
+<a name="getOrCreateSwModel-org.eclipse.app4mc.amalthea.model.Amalthea-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrCreateSwModel</h4>
+<pre>public static&nbsp;SWModel&nbsp;getOrCreateSwModel(Amalthea&nbsp;model)</pre>
+</li>
+</ul>
+<a name="getOrCreateHwModel-org.eclipse.app4mc.amalthea.model.Amalthea-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrCreateHwModel</h4>
+<pre>public static&nbsp;HWModel&nbsp;getOrCreateHwModel(Amalthea&nbsp;model)</pre>
+</li>
+</ul>
+<a name="getOrCreateOsModel-org.eclipse.app4mc.amalthea.model.Amalthea-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrCreateOsModel</h4>
+<pre>public static&nbsp;OSModel&nbsp;getOrCreateOsModel(Amalthea&nbsp;model)</pre>
+</li>
+</ul>
+<a name="getOrCreateStimuliModel-org.eclipse.app4mc.amalthea.model.Amalthea-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrCreateStimuliModel</h4>
+<pre>public static&nbsp;StimuliModel&nbsp;getOrCreateStimuliModel(Amalthea&nbsp;model)</pre>
+</li>
+</ul>
+<a name="getOrCreateEventModel-org.eclipse.app4mc.amalthea.model.Amalthea-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrCreateEventModel</h4>
+<pre>public static&nbsp;EventModel&nbsp;getOrCreateEventModel(Amalthea&nbsp;model)</pre>
+</li>
+</ul>
+<a name="getOrCreateConstraintsModel-org.eclipse.app4mc.amalthea.model.Amalthea-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrCreateConstraintsModel</h4>
+<pre>public static&nbsp;ConstraintsModel&nbsp;getOrCreateConstraintsModel(Amalthea&nbsp;model)</pre>
+</li>
+</ul>
+<a name="getOrCreatePropertyConstraintsModel-org.eclipse.app4mc.amalthea.model.Amalthea-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrCreatePropertyConstraintsModel</h4>
+<pre>public static&nbsp;PropertyConstraintsModel&nbsp;getOrCreatePropertyConstraintsModel(Amalthea&nbsp;model)</pre>
+</li>
+</ul>
+<a name="getOrCreateMappingModel-org.eclipse.app4mc.amalthea.model.Amalthea-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrCreateMappingModel</h4>
+<pre>public static&nbsp;MappingModel&nbsp;getOrCreateMappingModel(Amalthea&nbsp;model)</pre>
+</li>
+</ul>
+<a name="getOrCreateComponentsModel-org.eclipse.app4mc.amalthea.model.Amalthea-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrCreateComponentsModel</h4>
+<pre>public static&nbsp;ComponentsModel&nbsp;getOrCreateComponentsModel(Amalthea&nbsp;model)</pre>
+</li>
+</ul>
+<a name="getOrCreateConfigModel-org.eclipse.app4mc.amalthea.model.Amalthea-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrCreateConfigModel</h4>
+<pre>public static&nbsp;ConfigModel&nbsp;getOrCreateConfigModel(Amalthea&nbsp;model)</pre>
+</li>
+</ul>
+<a name="getOrCreateMeasurementModel-org.eclipse.app4mc.amalthea.model.Amalthea-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getOrCreateMeasurementModel</h4>
+<pre>public static&nbsp;MeasurementModel&nbsp;getOrCreateMeasurementModel(Amalthea&nbsp;model)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/RuntimeUtil.AccessDirection.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/RuntimeUtil.AccessDirection.html
new file mode 100644
index 0000000..23a7af2
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/RuntimeUtil.AccessDirection.html
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>RuntimeUtil.AccessDirection</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.util</div>
+<h2 title="Enum RuntimeUtil.AccessDirection" class="title">Enum RuntimeUtil.AccessDirection</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>Enum&lt;<a href="RuntimeUtil.AccessDirection.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.AccessDirection</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>RuntimeUtil.AccessDirection</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd>Serializable, Comparable&lt;<a href="RuntimeUtil.AccessDirection.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.AccessDirection</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="RuntimeUtil.html" title="class in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <span class="typeNameLabel">RuntimeUtil.AccessDirection</span>
+extends Enum&lt;<a href="RuntimeUtil.AccessDirection.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.AccessDirection</a>&gt;</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!-- -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#READ">READ</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#WRITE">WRITE</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="RuntimeUtil.AccessDirection.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.AccessDirection</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="RuntimeUtil.AccessDirection.html#valueOf-java.lang.String-">valueOf</a></span>(String&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="RuntimeUtil.AccessDirection.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.AccessDirection</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="RuntimeUtil.AccessDirection.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Enum">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Enum</h3>
+<code>compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!-- -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="READ">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>READ</h4>
+<pre>public static final&nbsp;<a href="RuntimeUtil.AccessDirection.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.AccessDirection</a> READ</pre>
+</li>
+</ul>
+<a name="WRITE">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>WRITE</h4>
+<pre>public static final&nbsp;<a href="RuntimeUtil.AccessDirection.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.AccessDirection</a> WRITE</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="RuntimeUtil.AccessDirection.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.AccessDirection</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (RuntimeUtil.AccessDirection c : RuntimeUtil.AccessDirection.values())
+&nbsp; System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="RuntimeUtil.AccessDirection.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.AccessDirection</a>&nbsp;valueOf(String&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>IllegalArgumentException</code> - if this enum type has no constant with the specified name</dd>
+<dd><code>NullPointerException</code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/RuntimeUtil.PositionType.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/RuntimeUtil.PositionType.html
new file mode 100644
index 0000000..e0cd4d4
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/RuntimeUtil.PositionType.html
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>RuntimeUtil.PositionType</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.util</div>
+<h2 title="Enum RuntimeUtil.PositionType" class="title">Enum RuntimeUtil.PositionType</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>Enum&lt;<a href="RuntimeUtil.PositionType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.PositionType</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>RuntimeUtil.PositionType</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd>Serializable, Comparable&lt;<a href="RuntimeUtil.PositionType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.PositionType</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="RuntimeUtil.html" title="class in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <span class="typeNameLabel">RuntimeUtil.PositionType</span>
+extends Enum&lt;<a href="RuntimeUtil.PositionType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.PositionType</a>&gt;</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!-- -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#FIRST">FIRST</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#LAST">LAST</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="RuntimeUtil.PositionType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.PositionType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#valueOf-java.lang.String-">valueOf</a></span>(String&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="RuntimeUtil.PositionType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.PositionType</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Enum">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Enum</h3>
+<code>compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!-- -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="FIRST">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FIRST</h4>
+<pre>public static final&nbsp;<a href="RuntimeUtil.PositionType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.PositionType</a> FIRST</pre>
+</li>
+</ul>
+<a name="LAST">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LAST</h4>
+<pre>public static final&nbsp;<a href="RuntimeUtil.PositionType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.PositionType</a> LAST</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="RuntimeUtil.PositionType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.PositionType</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (RuntimeUtil.PositionType c : RuntimeUtil.PositionType.values())
+&nbsp; System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="RuntimeUtil.PositionType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.PositionType</a>&nbsp;valueOf(String&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>IllegalArgumentException</code> - if this enum type has no constant with the specified name</dd>
+<dd><code>NullPointerException</code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/RuntimeUtil.TimeType.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/RuntimeUtil.TimeType.html
new file mode 100644
index 0000000..678fa40
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/RuntimeUtil.TimeType.html
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>RuntimeUtil.TimeType</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.util</div>
+<h2 title="Enum RuntimeUtil.TimeType" class="title">Enum RuntimeUtil.TimeType</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>Enum&lt;<a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>RuntimeUtil.TimeType</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd>Serializable, Comparable&lt;<a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="RuntimeUtil.html" title="class in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <span class="typeNameLabel">RuntimeUtil.TimeType</span>
+extends Enum&lt;<a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&gt;</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!-- -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#ACET">ACET</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#BCET">BCET</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#WCET">WCET</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#valueOf-java.lang.String-">valueOf</a></span>(String&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Enum">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Enum</h3>
+<code>compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!-- -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="BCET">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BCET</h4>
+<pre>public static final&nbsp;<a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a> BCET</pre>
+</li>
+</ul>
+<a name="ACET">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ACET</h4>
+<pre>public static final&nbsp;<a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a> ACET</pre>
+</li>
+</ul>
+<a name="WCET">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>WCET</h4>
+<pre>public static final&nbsp;<a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a> WCET</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (RuntimeUtil.TimeType c : RuntimeUtil.TimeType.values())
+&nbsp; System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;valueOf(String&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>IllegalArgumentException</code> - if this enum type has no constant with the specified name</dd>
+<dd><code>NullPointerException</code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/RuntimeUtil.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/RuntimeUtil.html
new file mode 100644
index 0000000..7a8fb52
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/RuntimeUtil.html
@@ -0,0 +1,871 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Wed Jan 30 10:29:48 CET 2019 -->
+<title>RuntimeUtil</title>
+<meta name="date" content="2019-01-30">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.util</div>
+<h2 title="Class RuntimeUtil" class="title">Class RuntimeUtil</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>RuntimeUtil</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">RuntimeUtil</span>
+extends Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!-- -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="RuntimeUtil.AccessDirection.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.AccessDirection</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="RuntimeUtil.PositionType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.PositionType</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#RuntimeUtil--">RuntimeUtil</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static Runnable</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#addRuntimeToProcessAsNewRunnable-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.ExecutionNeed-java.lang.String-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.PositionType-">addRuntimeToProcessAsNewRunnable</a></span>(Process&nbsp;process,
+ ExecutionNeed&nbsp;need,
+ String&nbsp;runnableName,
+ <a href="RuntimeUtil.PositionType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.PositionType</a>&nbsp;positon)</code>
+<div class="block">Creates a new Runnable with the given runtime and create a CallSequence at
+ beginning / end of the given process</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static Runnable</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#addRuntimeToProcessAsNewRunnable-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.Ticks-java.lang.String-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.PositionType-">addRuntimeToProcessAsNewRunnable</a></span>(Process&nbsp;process,
+ Ticks&nbsp;ticks,
+ String&nbsp;runnableName,
+ <a href="RuntimeUtil.PositionType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.PositionType</a>&nbsp;positon)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#addRuntimeToRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.ExecutionNeed-">addRuntimeToRunnable</a></span>(Runnable&nbsp;runnable,
+ ExecutionNeed&nbsp;need)</code>
+<div class="block">Adds Runtime (given as ExecutionNeed) to an existing Runnable currently
+ without consideration of modes</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#addRuntimeToRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.Ticks-">addRuntimeToRunnable</a></span>(Runnable&nbsp;runnable,
+ Ticks&nbsp;ticks)</code>
+<div class="block">Adds Runtime (given as Ticks) to an existing Runnable currently
+ without consideration of modes</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#clearRuntimeOfModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.emf.common.util.EMap-">clearRuntimeOfModel</a></span>(Amalthea&nbsp;model,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Clears all runtime information (execution needs and ticks)</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#clearRuntimeOfProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">clearRuntimeOfProcess</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Clears all runtime information (execution needs and ticks)</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#clearRuntimeOfRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">clearRuntimeOfRunnable</a></span>(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Clears all runtime information (execution needs and ticks)</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static Map&lt;Process,Double&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getCumulativeProcessUtilizations-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-java.util.List-org.eclipse.emf.common.util.EMap-">getCumulativeProcessUtilizations</a></span>(Amalthea&nbsp;model,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
+ List&lt;HwFeature&gt;&nbsp;hwFeatures,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns the cumulative process utilization, i.e. runtime on every procUnit summed up</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getExecutionTimeForCycles-double-org.eclipse.app4mc.amalthea.model.Frequency-">getExecutionTimeForCycles</a></span>(double&nbsp;ticks,
+ Frequency&nbsp;frequency)</code>
+<div class="block">Computes time for a number of ticks with a given frequency</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getExecutionTimeForExecutionNeedEntry-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-org.eclipse.app4mc.amalthea.model.HwFeatureCategory-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getExecutionTimeForExecutionNeedEntry</a></span>(IDiscreteValueDeviation&nbsp;deviation,
+ HwFeatureCategory&nbsp;hwFeatureCategory,
+ ProcessingUnit&nbsp;processingUnit,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</code>
+<div class="block">Computes time for specific execution need entry on a given processing unit</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getExecutionTimeForExecutionNeeds-org.eclipse.app4mc.amalthea.model.ExecutionNeed-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getExecutionTimeForExecutionNeeds</a></span>(ExecutionNeed&nbsp;need,
+ ProcessingUnit&nbsp;processingUnit,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</code>
+<div class="block">Computes time for execution needs on a given processing unit</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getExecutionTimeForProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getExecutionTimeForProcess</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</code>
+<div class="block">Computes the execution time of a Process (Task or ISR) - unique mapping is required</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getExecutionTimeForProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.emf.common.util.EMap-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getExecutionTimeForProcess</a></span>(Process&nbsp;process,
+ ProcessingUnit&nbsp;processingUnit,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</code>
+<div class="block">Computes the execution time of a Process (Task or ISR) on a given processing unit</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getExecutionTimeForRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.emf.common.util.EMap-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getExecutionTimeForRunnable</a></span>(Runnable&nbsp;runnable,
+ ProcessingUnit&nbsp;processingUnit,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</code>
+<div class="block">Computes the execution time of a Runnable on a given processing unit</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getExecutionTimeForTicks-org.eclipse.app4mc.amalthea.model.Ticks-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getExecutionTimeForTicks</a></span>(Ticks&nbsp;ticks,
+ ProcessingUnit&nbsp;processingUnit,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</code>
+<div class="block">Computes time for ticks on a given processing unit</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getExecutionTimeForTicksDeviation-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getExecutionTimeForTicksDeviation</a></span>(IDiscreteValueDeviation&nbsp;deviation,
+ ProcessingUnit&nbsp;processingUnit,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</code>
+<div class="block">Computes time for ticks on a given processing unit</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>static Map&lt;Process,List&lt;Time&gt;&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getPeriodsOfAllProcesses-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-org.eclipse.emf.common.util.EMap-">getPeriodsOfAllProcesses</a></span>(Amalthea&nbsp;model,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Gets all Period ranges from the model</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>static List&lt;Time&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getPeriodsOfProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-org.eclipse.emf.common.util.EMap-">getPeriodsOfProcess</a></span>(Process&nbsp;process,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a list of all triggering periods.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;Map&lt;Stimulus,Long&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getPlainTriggerForProcess-org.eclipse.app4mc.amalthea.model.Process-long-java.util.function.Function-">getPlainTriggerForProcess</a></span>(Process&nbsp;process,
+ long&nbsp;depthCounter,
+ Function&lt;Stimulus,Boolean&gt;&nbsp;filter)</code>
+<div class="block">Returns all stimuli (matching filter) that trigger the given process</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;Map&lt;Process,Map&lt;Stimulus,Long&gt;&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getPlainTriggersForModel-org.eclipse.app4mc.amalthea.model.Amalthea-java.util.function.Function-">getPlainTriggersForModel</a></span>(Amalthea&nbsp;model,
+ Function&lt;Stimulus,Boolean&gt;&nbsp;filter)</code>
+<div class="block">Returns a map from process to all stimuli (matching filter) that
+ lead to that process with the correct prescaler</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>static Map&lt;Process,List&lt;ITimeDeviation&gt;&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getProcessesWithRelativePeriodicStimulus-org.eclipse.app4mc.amalthea.model.Amalthea-">getProcessesWithRelativePeriodicStimulus</a></span>(Amalthea&nbsp;model)</code>
+<div class="block">Returns a Map of all sporadically triggered processes with their prescaler</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>static Map&lt;Process,List&lt;Time&gt;&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getProcessesWithRelativePeriodicStimulus-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getProcessesWithRelativePeriodicStimulus</a></span>(Amalthea&nbsp;model,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt)</code>
+<div class="block">Returns a Map of all sporadically triggered processes with their prescaler</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>static Map&lt;ProcessingUnit,Double&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getProcessUtilization-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-java.util.List-org.eclipse.emf.common.util.EMap-">getProcessUtilization</a></span>(Process&nbsp;process,
+ Amalthea&nbsp;model,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
+ List&lt;HwFeature&gt;&nbsp;hwFeatures,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Calculates the utilization for a given process</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getProcessUtilization-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-java.util.List-org.eclipse.emf.common.util.EMap-">getProcessUtilization</a></span>(Process&nbsp;process,
+ ProcessingUnit&nbsp;procUnit,
+ Amalthea&nbsp;model,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
+ List&lt;HwFeature&gt;&nbsp;hwFeatures,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Calculates the utilization for a given process on a given procUnit
+
+ Assumption (wrong): All triggers activate the process on all procUnits together!</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getProcessUtilization-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.Time-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-org.eclipse.emf.common.util.EMap-">getProcessUtilization</a></span>(Process&nbsp;process,
+ Time&nbsp;period,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Calculates the process utilization</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getProcUnitUtilization-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-java.util.List-org.eclipse.emf.common.util.EMap-">getProcUnitUtilization</a></span>(ProcessingUnit&nbsp;procUnit,
+ Amalthea&nbsp;model,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
+ List&lt;HwFeature&gt;&nbsp;hwFeatures,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Calculates the utilization for a given procUnit</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>static HashMap&lt;Stimulus,Long&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getTriggeredStimuli-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getTriggeredStimuli</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a map of all stimuli, triggered by this process, associated with its prescaler.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>static Map&lt;Process,Long&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getTriggeringProcesses-org.eclipse.app4mc.amalthea.model.InterProcessStimulus-org.eclipse.emf.common.util.EMap-">getTriggeringProcesses</a></span>(InterProcessStimulus&nbsp;ip,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns all Processes that trigger the given InterProcessStimulus</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#setRuntimeOfRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.ExecutionNeed-org.eclipse.emf.common.util.EMap-">setRuntimeOfRunnable</a></span>(Runnable&nbsp;runnable,
+ ExecutionNeed&nbsp;need,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Sets the runtime of the given runnable to the given ExecutionNeed</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#setRuntimeOfRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.Ticks-org.eclipse.emf.common.util.EMap-">setRuntimeOfRunnable</a></span>(Runnable&nbsp;runnable,
+ Ticks&nbsp;ticks,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Sets the runtime of the given runnable to the given Ticks</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="RuntimeUtil--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RuntimeUtil</h4>
+<pre>public&nbsp;RuntimeUtil()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getExecutionTimeForProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getExecutionTimeForProcess</h4>
+<pre>public static&nbsp;Time&nbsp;getExecutionTimeForProcess(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</pre>
+<div class="block">Computes the execution time of a Process (Task or ISR) - unique mapping is required</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - task or isr</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dd><code>executionCase</code> - BCET, ACET, WCET</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>execution time</dd>
+</dl>
+</li>
+</ul>
+<a name="getExecutionTimeForProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.emf.common.util.EMap-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getExecutionTimeForProcess</h4>
+<pre>public static&nbsp;Time&nbsp;getExecutionTimeForProcess(Process&nbsp;process,
+ ProcessingUnit&nbsp;processingUnit,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</pre>
+<div class="block">Computes the execution time of a Process (Task or ISR) on a given processing unit</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - task or isr</dd>
+<dd><code>processingUnit</code> - executing processing unit</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dd><code>executionCase</code> - BCET, ACET, WCET</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>execution time</dd>
+</dl>
+</li>
+</ul>
+<a name="getExecutionTimeForRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.emf.common.util.EMap-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getExecutionTimeForRunnable</h4>
+<pre>public static&nbsp;Time&nbsp;getExecutionTimeForRunnable(Runnable&nbsp;runnable,
+ ProcessingUnit&nbsp;processingUnit,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</pre>
+<div class="block">Computes the execution time of a Runnable on a given processing unit</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>processingUnit</code> - executing processing unit</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dd><code>executionCase</code> - BCET, ACET, WCET</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>execution time</dd>
+</dl>
+</li>
+</ul>
+<a name="getExecutionTimeForTicks-org.eclipse.app4mc.amalthea.model.Ticks-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getExecutionTimeForTicks</h4>
+<pre>public static&nbsp;Time&nbsp;getExecutionTimeForTicks(Ticks&nbsp;ticks,
+ ProcessingUnit&nbsp;processingUnit,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</pre>
+<div class="block">Computes time for ticks on a given processing unit</div>
+</li>
+</ul>
+<a name="getExecutionTimeForTicksDeviation-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getExecutionTimeForTicksDeviation</h4>
+<pre>public static&nbsp;Time&nbsp;getExecutionTimeForTicksDeviation(IDiscreteValueDeviation&nbsp;deviation,
+ ProcessingUnit&nbsp;processingUnit,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</pre>
+<div class="block">Computes time for ticks on a given processing unit</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>deviation</code> - ticks deviation</dd>
+<dd><code>processingUnit</code> - executing processing unit</dd>
+<dd><code>executionCase</code> - BCET, ACET, WCET</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>execution time</dd>
+</dl>
+</li>
+</ul>
+<a name="getExecutionTimeForExecutionNeeds-org.eclipse.app4mc.amalthea.model.ExecutionNeed-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getExecutionTimeForExecutionNeeds</h4>
+<pre>public static&nbsp;Time&nbsp;getExecutionTimeForExecutionNeeds(ExecutionNeed&nbsp;need,
+ ProcessingUnit&nbsp;processingUnit,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</pre>
+<div class="block">Computes time for execution needs on a given processing unit</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>need</code> - execution need</dd>
+<dd><code>processingUnit</code> - executing processing unit</dd>
+<dd><code>executionCase</code> - BCET, ACET, WCET</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>execution time</dd>
+</dl>
+</li>
+</ul>
+<a name="getExecutionTimeForExecutionNeedEntry-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-org.eclipse.app4mc.amalthea.model.HwFeatureCategory-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getExecutionTimeForExecutionNeedEntry</h4>
+<pre>public static&nbsp;Time&nbsp;getExecutionTimeForExecutionNeedEntry(IDiscreteValueDeviation&nbsp;deviation,
+ HwFeatureCategory&nbsp;hwFeatureCategory,
+ ProcessingUnit&nbsp;processingUnit,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</pre>
+<div class="block">Computes time for specific execution need entry on a given processing unit</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>deviation</code> - needs deviation</dd>
+<dd><code>hwFeatureCategory</code> - corresponding feature category</dd>
+<dd><code>processingUnit</code> - executing processing unit</dd>
+<dd><code>executionCase</code> - BCET, ACET, WCET</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>execution time</dd>
+</dl>
+</li>
+</ul>
+<a name="getExecutionTimeForCycles-double-org.eclipse.app4mc.amalthea.model.Frequency-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getExecutionTimeForCycles</h4>
+<pre>public static&nbsp;Time&nbsp;getExecutionTimeForCycles(double&nbsp;ticks,
+ Frequency&nbsp;frequency)</pre>
+<div class="block">Computes time for a number of ticks with a given frequency</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>ticks</code> - ticks / cycles</dd>
+<dd><code>frequency</code> - frequency (of an executing processing unit)</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>execution time</dd>
+</dl>
+</li>
+</ul>
+<a name="setRuntimeOfRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.ExecutionNeed-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRuntimeOfRunnable</h4>
+<pre>public static&nbsp;void&nbsp;setRuntimeOfRunnable(Runnable&nbsp;runnable,
+ ExecutionNeed&nbsp;need,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Sets the runtime of the given runnable to the given ExecutionNeed</div>
+</li>
+</ul>
+<a name="setRuntimeOfRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.Ticks-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRuntimeOfRunnable</h4>
+<pre>public static&nbsp;void&nbsp;setRuntimeOfRunnable(Runnable&nbsp;runnable,
+ Ticks&nbsp;ticks,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Sets the runtime of the given runnable to the given Ticks</div>
+</li>
+</ul>
+<a name="addRuntimeToRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.ExecutionNeed-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addRuntimeToRunnable</h4>
+<pre>public static&nbsp;void&nbsp;addRuntimeToRunnable(Runnable&nbsp;runnable,
+ ExecutionNeed&nbsp;need)</pre>
+<div class="block">Adds Runtime (given as ExecutionNeed) to an existing Runnable currently
+ without consideration of modes</div>
+</li>
+</ul>
+<a name="addRuntimeToRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.Ticks-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addRuntimeToRunnable</h4>
+<pre>public static&nbsp;void&nbsp;addRuntimeToRunnable(Runnable&nbsp;runnable,
+ Ticks&nbsp;ticks)</pre>
+<div class="block">Adds Runtime (given as Ticks) to an existing Runnable currently
+ without consideration of modes</div>
+</li>
+</ul>
+<a name="clearRuntimeOfModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clearRuntimeOfModel</h4>
+<pre>public static&nbsp;void&nbsp;clearRuntimeOfModel(Amalthea&nbsp;model,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Clears all runtime information (execution needs and ticks)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>model</code> - Amalthea model</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+</dl>
+</li>
+</ul>
+<a name="clearRuntimeOfProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clearRuntimeOfProcess</h4>
+<pre>public static&nbsp;void&nbsp;clearRuntimeOfProcess(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Clears all runtime information (execution needs and ticks)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - task or isr</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+</dl>
+</li>
+</ul>
+<a name="clearRuntimeOfRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clearRuntimeOfRunnable</h4>
+<pre>public static&nbsp;void&nbsp;clearRuntimeOfRunnable(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Clears all runtime information (execution needs and ticks)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+</dl>
+</li>
+</ul>
+<a name="addRuntimeToProcessAsNewRunnable-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.ExecutionNeed-java.lang.String-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.PositionType-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addRuntimeToProcessAsNewRunnable</h4>
+<pre>public static&nbsp;Runnable&nbsp;addRuntimeToProcessAsNewRunnable(Process&nbsp;process,
+ ExecutionNeed&nbsp;need,
+ String&nbsp;runnableName,
+ <a href="RuntimeUtil.PositionType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.PositionType</a>&nbsp;positon)</pre>
+<div class="block">Creates a new Runnable with the given runtime and create a CallSequence at
+ beginning / end of the given process</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - containing process (task or isr)</dd>
+<dd><code>need</code> - execution need</dd>
+<dd><code>runnableName</code> - name of new runnable</dd>
+<dd><code>positon</code> - FIRST, LAST</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the new runnable</dd>
+</dl>
+</li>
+</ul>
+<a name="addRuntimeToProcessAsNewRunnable-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.Ticks-java.lang.String-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.PositionType-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addRuntimeToProcessAsNewRunnable</h4>
+<pre>public static&nbsp;Runnable&nbsp;addRuntimeToProcessAsNewRunnable(Process&nbsp;process,
+ Ticks&nbsp;ticks,
+ String&nbsp;runnableName,
+ <a href="RuntimeUtil.PositionType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.PositionType</a>&nbsp;positon)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - containing process (task or isr)</dd>
+<dd><code>ticks</code> - ticks</dd>
+<dd><code>runnableName</code> - name of new runnable</dd>
+<dd><code>positon</code> - FIRST, LAST</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the new runnable</dd>
+</dl>
+</li>
+</ul>
+<a name="getProcUnitUtilization-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-java.util.List-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProcUnitUtilization</h4>
+<pre>public static&nbsp;double&nbsp;getProcUnitUtilization(ProcessingUnit&nbsp;procUnit,
+ Amalthea&nbsp;model,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
+ List&lt;HwFeature&gt;&nbsp;hwFeatures,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Calculates the utilization for a given procUnit</div>
+</li>
+</ul>
+<a name="getProcessUtilization-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-java.util.List-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProcessUtilization</h4>
+<pre>public static&nbsp;Map&lt;ProcessingUnit,Double&gt;&nbsp;getProcessUtilization(Process&nbsp;process,
+ Amalthea&nbsp;model,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
+ List&lt;HwFeature&gt;&nbsp;hwFeatures,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Calculates the utilization for a given process</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Map: procUnit -&gt; utilization</dd>
+</dl>
+</li>
+</ul>
+<a name="getProcessUtilization-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-java.util.List-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProcessUtilization</h4>
+<pre>public static&nbsp;double&nbsp;getProcessUtilization(Process&nbsp;process,
+ ProcessingUnit&nbsp;procUnit,
+ Amalthea&nbsp;model,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
+ List&lt;HwFeature&gt;&nbsp;hwFeatures,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Calculates the utilization for a given process on a given procUnit
+ <p>
+ Assumption (wrong): All triggers activate the process on all procUnits together! (at the same time)</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>utilization</dd>
+</dl>
+</li>
+</ul>
+<a name="getProcessUtilization-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.Time-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProcessUtilization</h4>
+<pre>public static&nbsp;double&nbsp;getProcessUtilization(Process&nbsp;process,
+ Time&nbsp;period,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Calculates the process utilization</div>
+</li>
+</ul>
+<a name="getCumulativeProcessUtilizations-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-java.util.List-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCumulativeProcessUtilizations</h4>
+<pre>public static&nbsp;Map&lt;Process,Double&gt;&nbsp;getCumulativeProcessUtilizations(Amalthea&nbsp;model,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
+ List&lt;HwFeature&gt;&nbsp;hwFeatures,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns the cumulative process utilization, i.e. runtime on every procUnit summed up</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Map: process -&gt; sum of utilization on all procUnits</dd>
+</dl>
+</li>
+</ul>
+<a name="getPeriodsOfAllProcesses-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPeriodsOfAllProcesses</h4>
+<pre>public static&nbsp;Map&lt;Process,List&lt;Time&gt;&gt;&nbsp;getPeriodsOfAllProcesses(Amalthea&nbsp;model,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Gets all Period ranges from the model</div>
+</li>
+</ul>
+<a name="getPeriodsOfProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPeriodsOfProcess</h4>
+<pre>public static&nbsp;List&lt;Time&gt;&nbsp;getPeriodsOfProcess(Process&nbsp;process,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a list of all triggering periods. Sorted by shortest period first!</div>
+</li>
+</ul>
+<a name="getTriggeringProcesses-org.eclipse.app4mc.amalthea.model.InterProcessStimulus-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTriggeringProcesses</h4>
+<pre>public static&nbsp;Map&lt;Process,Long&gt;&nbsp;getTriggeringProcesses(InterProcessStimulus&nbsp;ip,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns all Processes that trigger the given InterProcessStimulus</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Map: process -&gt; prescaler value</dd>
+</dl>
+</li>
+</ul>
+<a name="getTriggeredStimuli-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTriggeredStimuli</h4>
+<pre>public static&nbsp;HashMap&lt;Stimulus,Long&gt;&nbsp;getTriggeredStimuli(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a map of all stimuli, triggered by this process, associated with its prescaler.</div>
+</li>
+</ul>
+<a name="getProcessesWithRelativePeriodicStimulus-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProcessesWithRelativePeriodicStimulus</h4>
+<pre>public static&nbsp;Map&lt;Process,List&lt;Time&gt;&gt;&nbsp;getProcessesWithRelativePeriodicStimulus(Amalthea&nbsp;model,
+ <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt)</pre>
+<div class="block">Returns a Map of all sporadically triggered processes with their prescaler</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Map of processes with a sporadic activation and depending on tt the
+ time between activations</dd>
+</dl>
+</li>
+</ul>
+<a name="getProcessesWithRelativePeriodicStimulus-org.eclipse.app4mc.amalthea.model.Amalthea-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProcessesWithRelativePeriodicStimulus</h4>
+<pre>public static&nbsp;Map&lt;Process,List&lt;ITimeDeviation&gt;&gt;&nbsp;getProcessesWithRelativePeriodicStimulus(Amalthea&nbsp;model)</pre>
+<div class="block">Returns a Map of all sporadically triggered processes with their prescaler</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Map of processes with a sporadic activation and the deviation of the
+ activations</dd>
+</dl>
+</li>
+</ul>
+<a name="getPlainTriggersForModel-org.eclipse.app4mc.amalthea.model.Amalthea-java.util.function.Function-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPlainTriggersForModel</h4>
+<pre>public static&nbsp;&lt;T&gt;&nbsp;Map&lt;Process,Map&lt;Stimulus,Long&gt;&gt;&nbsp;getPlainTriggersForModel(Amalthea&nbsp;model,
+ Function&lt;Stimulus,Boolean&gt;&nbsp;filter)</pre>
+<div class="block">Returns a map from process to all stimuli (matching filter) that
+ lead to that process with the correct prescaler</div>
+</li>
+</ul>
+<a name="getPlainTriggerForProcess-org.eclipse.app4mc.amalthea.model.Process-long-java.util.function.Function-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getPlainTriggerForProcess</h4>
+<pre>public static&nbsp;&lt;T&gt;&nbsp;Map&lt;Stimulus,Long&gt;&nbsp;getPlainTriggerForProcess(Process&nbsp;process,
+ long&nbsp;depthCounter,
+ Function&lt;Stimulus,Boolean&gt;&nbsp;filter)</pre>
+<div class="block">Returns all stimuli (matching filter) that trigger the given process</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/SoftwareUtil.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/SoftwareUtil.html
new file mode 100644
index 0000000..e56ed42
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/SoftwareUtil.html
@@ -0,0 +1,1409 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>SoftwareUtil</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.util</div>
+<h2 title="Class SoftwareUtil" class="title">Class SoftwareUtil</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>SoftwareUtil</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SoftwareUtil</span>
+extends Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#SoftwareUtil--">SoftwareUtil</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static EList&lt;CallSequenceItem&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#collectCalls-org.eclipse.app4mc.amalthea.model.Process-">collectCalls</a></span>(Process&nbsp;process)</code>
+<div class="block">Traverse the call graph of a process and collect all items of the call sequences.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static EList&lt;CallSequenceItem&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#collectCalls-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">collectCalls</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Traverse the call graph of a process and collect all items of the call sequences.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static &lt;T extends CallSequenceItem&gt;<br>EList&lt;T&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#collectCalls-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-java.lang.Class-">collectCalls</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ Class&lt;T&gt;&nbsp;targetClass)</code>
+<div class="block">Traverse the call graph of a process and collect all items of the call sequences.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static &lt;T extends CallSequenceItem&gt;<br>EList&lt;T&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#collectCalls-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-java.lang.Class-java.util.function.Function-">collectCalls</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ Class&lt;T&gt;&nbsp;targetClass,
+ Function&lt;T,Boolean&gt;&nbsp;filter)</code>
+<div class="block">Traverse the call graph of a process and collect all items of the call sequences.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static EList&lt;CallSequenceItem&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#collectCalls-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-java.util.function.Function-">collectCalls</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ Function&lt;CallSequenceItem,Boolean&gt;&nbsp;filter)</code>
+<div class="block">Traverse the call graph of a process and collect all items of the call sequences.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static List&lt;ClearEvent&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#collectClearEvents-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">collectClearEvents</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Collects a list of clear event calls for a process</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static List&lt;CallSequenceItem&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#collectEventsOfProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">collectEventsOfProcess</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Collects a list of event calls (clear, set or wait) of a process</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static EList&lt;RunnableItem&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#collectRunnableItems-org.eclipse.app4mc.amalthea.model.Runnable-">collectRunnableItems</a></span>(Runnable&nbsp;runnable)</code>
+<div class="block">Traverse the runnable items graph of a runnable and collect all items.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static EList&lt;RunnableItem&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#collectRunnableItems-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">collectRunnableItems</a></span>(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Traverse the runnable items graph of a runnable and collect all items.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>static &lt;T extends RunnableItem&gt;<br>EList&lt;T&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#collectRunnableItems-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-java.lang.Class-">collectRunnableItems</a></span>(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ Class&lt;T&gt;&nbsp;targetClass)</code>
+<div class="block">Traverse the runnable items graph of a runnable and collect all items.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>static &lt;T extends RunnableItem&gt;<br>EList&lt;T&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#collectRunnableItems-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-java.lang.Class-java.util.function.Function-">collectRunnableItems</a></span>(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ Class&lt;T&gt;&nbsp;targetClass,
+ Function&lt;T,Boolean&gt;&nbsp;filter)</code>
+<div class="block">Traverse the runnable items graph of a runnable and collect all items.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>static EList&lt;RunnableItem&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#collectRunnableItems-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-java.util.function.Function-">collectRunnableItems</a></span>(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ Function&lt;RunnableItem,Boolean&gt;&nbsp;filter)</code>
+<div class="block">Traverse the runnable items graph of a runnable and collect all items.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>static List&lt;SetEvent&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#collectSetEvents-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">collectSetEvents</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Collects a list of set events calls for a process</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>static List&lt;WaitEvent&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#collectWaitEvents-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">collectWaitEvents</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Collects a list of wait event calls for a process</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>static Set&lt;Label&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getAccessedLabelSet-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getAccessedLabelSet</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a set of labels accessed by the process</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>static Set&lt;Label&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getAccessedLabelSet-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getAccessedLabelSet</a></span>(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a set of labels accessed from the runnable</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>static List&lt;Runnable&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getCalledRunnables-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getCalledRunnables</a></span>(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a list of runnables directly called by the runnable</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>static List&lt;ExecutionNeed&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getExecutionNeeds-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getExecutionNeeds</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a list of all execution needs for a given process</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>static List&lt;ExecutionNeed&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getExecutionNeeds-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getExecutionNeeds</a></span>(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a list of all execution needs for a given runnable</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>static List&lt;Label&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getInterTaskCommunication-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getInterTaskCommunication</a></span>(Process&nbsp;sender,
+ Process&nbsp;receiver,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a list of all exchanged labels that are written by the sender process and read by the receiver process</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>static float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getLabelAccessCountFromStatistics-org.eclipse.app4mc.amalthea.model.LabelAccess-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getLabelAccessCountFromStatistics</a></span>(LabelAccess&nbsp;labelAcc,
+ <a href="../../../../../../org/eclipse/app4mc/amalthea/model/util/RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;accType)</code>
+<div class="block">Returns the number of label accesses from a statistic.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>static List&lt;LabelAccess&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getLabelAccessList-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getLabelAccessList</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a list of all label accesses of the process</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>static List&lt;LabelAccess&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getLabelAccessList-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getLabelAccessList</a></span>(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a list of all label accesses of the runnable</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>static Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getLabelAccessStatisticsMap</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a map: labels accessed by the process -&gt; the corresponding label access statistics</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>static Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getLabelAccessStatisticsMap</a></span>(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a map: labels accessed by the runnable -&gt; the corresponding LabelAccessStatistics</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>static float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getLabelReadCount-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getLabelReadCount</a></span>(Label&nbsp;label,
+ Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ <a href="../../../../../../org/eclipse/app4mc/amalthea/model/util/RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;timeType)</code>
+<div class="block">Returns the reads from a process to a certain label.</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>static Map&lt;Label,List&lt;LabelAccess&gt;&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getLabelToLabelAccessMap-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getLabelToLabelAccessMap</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a map: accessed labels of the process -&gt; the corresponding label accesses</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>static Map&lt;Label,List&lt;LabelAccess&gt;&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getLabelToLabelAccessMap-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getLabelToLabelAccessMap</a></span>(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a map: labels accessed from runnable -&gt; the corresponding label accesses</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>static float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getLabelWriteCount-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getLabelWriteCount</a></span>(Label&nbsp;label,
+ Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ <a href="../../../../../../org/eclipse/app4mc/amalthea/model/util/RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;timeType)</code>
+<div class="block">Returns the writes from a process to a certain label.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>static List&lt;Process&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getProcesses-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getProcesses</a></span>(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a list of processes calling the runnable</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>static List&lt;Runnable&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getReaderListOfLabel-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.emf.common.util.EMap-">getReaderListOfLabel</a></span>(Label&nbsp;label,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a list of runnables reading the label</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>static Set&lt;Runnable&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getReadersSetOfLabel-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.emf.common.util.EMap-">getReadersSetOfLabel</a></span>(Label&nbsp;label,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a set of runnables reading the label</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>static List&lt;LabelAccess&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getReadLabelAccessList-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getReadLabelAccessList</a></span>(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a list of read label accesses of the runnable</div>
+</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>static Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getReadLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getReadLabelAccessStatisticsMap</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a map: labels read the process -&gt; the corresponding label access statistics</div>
+</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>static Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getReadLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getReadLabelAccessStatisticsMap</a></span>(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a map: labels read by the runnable -&gt; the corresponding LabelAccessStatistics</div>
+</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>static Set&lt;Label&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getReadLabelSet-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getReadLabelSet</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a set of labels read by the process</div>
+</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>static Set&lt;Label&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getReadLabelSet-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getReadLabelSet</a></span>(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a set of labels read by the runnable</div>
+</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>static List&lt;Runnable&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getRunnableCallParents-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getRunnableCallParents</a></span>(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a list of runnables directly calling the runnable</div>
+</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>static List&lt;Runnable&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getRunnableList-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getRunnableList</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a list of runnables called by the process</div>
+</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>static Set&lt;Runnable&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getRunnableSet-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getRunnableSet</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a set of runnables called by the process - no duplicates</div>
+</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>static Set&lt;ServerCall&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getServerCallSet-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getServerCallSet</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a set of server calls for a process</div>
+</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>static Set&lt;ServerCall&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getServerCallSet-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getServerCallSet</a></span>(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a set of server calls for a runnable</div>
+</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>static List&lt;Ticks&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getTicks-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getTicks</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a list of all ticks for a given process</div>
+</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>static List&lt;Ticks&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getTicks-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getTicks</a></span>(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a list of all ticks for a given runnable</div>
+</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code>static List&lt;LabelAccess&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getWriteLabelAccessList-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getWriteLabelAccessList</a></span>(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a list of write label accesses of the runnable</div>
+</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code>static Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getWriteLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getWriteLabelAccessStatisticsMap</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a map: labels written by the process -&gt; the corresponding label access statistics</div>
+</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code>static Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getWriteLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getWriteLabelAccessStatisticsMap</a></span>(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a map: labels written by the runnable -&gt; the corresponding LabelAccessStatistics</div>
+</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code>static Set&lt;Label&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getWriteLabelSet-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getWriteLabelSet</a></span>(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a set of labels written by the process</div>
+</td>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><code>static Set&lt;Label&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getWriteLabelSet-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getWriteLabelSet</a></span>(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a set of labels written by the runnable</div>
+</td>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code>static List&lt;Runnable&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getWriterListOfLabel-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.emf.common.util.EMap-">getWriterListOfLabel</a></span>(Label&nbsp;label,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a list of runnables writing the label</div>
+</td>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><code>static Set&lt;Runnable&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getWriterSetOfLabel-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.emf.common.util.EMap-">getWriterSetOfLabel</a></span>(Label&nbsp;label,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</code>
+<div class="block">Returns a set of runnables writing the label</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SoftwareUtil--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SoftwareUtil</h4>
+<pre>public&nbsp;SoftwareUtil()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="collectCalls-org.eclipse.app4mc.amalthea.model.Process-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>collectCalls</h4>
+<pre>public static&nbsp;EList&lt;CallSequenceItem&gt;&nbsp;collectCalls(Process&nbsp;process)</pre>
+<div class="block">Traverse the call graph of a process and collect all items of the call sequences.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - process (Task or ISR)</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of CallSequenceItems</dd>
+</dl>
+</li>
+</ul>
+<a name="collectCalls-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>collectCalls</h4>
+<pre>public static&nbsp;EList&lt;CallSequenceItem&gt;&nbsp;collectCalls(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Traverse the call graph of a process and collect all items of the call sequences.
+ Collection can be restricted to specific modes.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - process (Task or ISR)</dd>
+<dd><code>modes</code> - list of mode literals that should be considered</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of CallSequenceItems</dd>
+</dl>
+</li>
+</ul>
+<a name="collectCalls-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-java.util.function.Function-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>collectCalls</h4>
+<pre>public static&nbsp;EList&lt;CallSequenceItem&gt;&nbsp;collectCalls(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ Function&lt;CallSequenceItem,Boolean&gt;&nbsp;filter)</pre>
+<div class="block">Traverse the call graph of a process and collect all items of the call sequences.
+ Collection can be restricted to specific modes and filtered by a lambda expression.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - process (Task or ISR)</dd>
+<dd><code>modes</code> - list of mode literals that should be considered</dd>
+<dd><code>filter</code> - lambda expression (e.g. "a -&gt; a instanceof TaskRunnableCall")</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of CallSequenceItems</dd>
+</dl>
+</li>
+</ul>
+<a name="collectCalls-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-java.lang.Class-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>collectCalls</h4>
+<pre>public static&nbsp;&lt;T extends CallSequenceItem&gt;&nbsp;EList&lt;T&gt;&nbsp;collectCalls(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ Class&lt;T&gt;&nbsp;targetClass)</pre>
+<div class="block">Traverse the call graph of a process and collect all items of the call sequences.
+ Collection can be restricted to specific modes and filtered by class.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - Process (Task or ISR)</dd>
+<dd><code>modes</code> - list of mode literals that should be considered</dd>
+<dd><code>targetClass</code> - subclass of CallSequenceItem that restricts the result</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of T extends CallSequenceItems</dd>
+</dl>
+</li>
+</ul>
+<a name="collectCalls-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-java.lang.Class-java.util.function.Function-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>collectCalls</h4>
+<pre>public static&nbsp;&lt;T extends CallSequenceItem&gt;&nbsp;EList&lt;T&gt;&nbsp;collectCalls(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ Class&lt;T&gt;&nbsp;targetClass,
+ Function&lt;T,Boolean&gt;&nbsp;filter)</pre>
+<div class="block">Traverse the call graph of a process and collect all items of the call sequences.
+ Collection can be restricted to specific modes and filtered by class and lambda expression.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - process (Task or ISR)</dd>
+<dd><code>modes</code> - list of mode literals that should be considered</dd>
+<dd><code>targetClass</code> - subclass of CallSequenceItem that restricts the result</dd>
+<dd><code>filter</code> - lambda expression (e.g. "a -&gt; a instanceof TaskRunnableCall")</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of T extends CallSequenceItems</dd>
+</dl>
+</li>
+</ul>
+<a name="collectRunnableItems-org.eclipse.app4mc.amalthea.model.Runnable-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>collectRunnableItems</h4>
+<pre>public static&nbsp;EList&lt;RunnableItem&gt;&nbsp;collectRunnableItems(Runnable&nbsp;runnable)</pre>
+<div class="block">Traverse the runnable items graph of a runnable and collect all items.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of RunnableItems</dd>
+</dl>
+</li>
+</ul>
+<a name="collectRunnableItems-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>collectRunnableItems</h4>
+<pre>public static&nbsp;EList&lt;RunnableItem&gt;&nbsp;collectRunnableItems(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Traverse the runnable items graph of a runnable and collect all items.
+ Collection can be restricted to specific modes.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>modes</code> - list of mode literals that should be considered</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of RunnableItems</dd>
+</dl>
+</li>
+</ul>
+<a name="collectRunnableItems-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-java.util.function.Function-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>collectRunnableItems</h4>
+<pre>public static&nbsp;EList&lt;RunnableItem&gt;&nbsp;collectRunnableItems(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ Function&lt;RunnableItem,Boolean&gt;&nbsp;filter)</pre>
+<div class="block">Traverse the runnable items graph of a runnable and collect all items.
+ Collection can be restricted to specific modes and filtered by a lambda expression.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>modes</code> - list of mode literals that should be considered</dd>
+<dd><code>filter</code> - lambda expression (e.g. "a -&gt; a instanceof LabelAccess")</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of RunnableItems</dd>
+</dl>
+</li>
+</ul>
+<a name="collectRunnableItems-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-java.lang.Class-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>collectRunnableItems</h4>
+<pre>public static&nbsp;&lt;T extends RunnableItem&gt;&nbsp;EList&lt;T&gt;&nbsp;collectRunnableItems(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ Class&lt;T&gt;&nbsp;targetClass)</pre>
+<div class="block">Traverse the runnable items graph of a runnable and collect all items.
+ Collection can be restricted to specific modes and filtered by class.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>modes</code> - list of mode literals that should be considered</dd>
+<dd><code>targetClass</code> - subclass of RunnableItem that restricts the result</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of T extends RunnableItems</dd>
+</dl>
+</li>
+</ul>
+<a name="collectRunnableItems-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-java.lang.Class-java.util.function.Function-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>collectRunnableItems</h4>
+<pre>public static&nbsp;&lt;T extends RunnableItem&gt;&nbsp;EList&lt;T&gt;&nbsp;collectRunnableItems(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ Class&lt;T&gt;&nbsp;targetClass,
+ Function&lt;T,Boolean&gt;&nbsp;filter)</pre>
+<div class="block">Traverse the runnable items graph of a runnable and collect all items.
+ Collection can be restricted to specific modes and filtered by class and lambda expression.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>modes</code> - list of mode literals that should be considered</dd>
+<dd><code>targetClass</code> - subclass of RunnableItem that restricts the result</dd>
+<dd><code>filter</code> - lambda expression (e.g. "a -&gt; a instanceof LabelAccess")</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of T extends RunnableItems</dd>
+</dl>
+</li>
+</ul>
+<a name="getAccessedLabelSet-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAccessedLabelSet</h4>
+<pre>public static&nbsp;Set&lt;Label&gt;&nbsp;getAccessedLabelSet(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a set of labels accessed from the runnable</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Set of Labels</dd>
+</dl>
+</li>
+</ul>
+<a name="getReadLabelSet-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReadLabelSet</h4>
+<pre>public static&nbsp;Set&lt;Label&gt;&nbsp;getReadLabelSet(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a set of labels read by the runnable</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Set of Labels</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriteLabelSet-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriteLabelSet</h4>
+<pre>public static&nbsp;Set&lt;Label&gt;&nbsp;getWriteLabelSet(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a set of labels written by the runnable</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Set of Labels</dd>
+</dl>
+</li>
+</ul>
+<a name="getLabelAccessList-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLabelAccessList</h4>
+<pre>public static&nbsp;List&lt;LabelAccess&gt;&nbsp;getLabelAccessList(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a list of all label accesses of the runnable</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of LabelAccesses</dd>
+</dl>
+</li>
+</ul>
+<a name="getReadLabelAccessList-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReadLabelAccessList</h4>
+<pre>public static&nbsp;List&lt;LabelAccess&gt;&nbsp;getReadLabelAccessList(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a list of read label accesses of the runnable</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of LabelAccesses</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriteLabelAccessList-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriteLabelAccessList</h4>
+<pre>public static&nbsp;List&lt;LabelAccess&gt;&nbsp;getWriteLabelAccessList(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a list of write label accesses of the runnable</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of LabelAccesses</dd>
+</dl>
+</li>
+</ul>
+<a name="getLabelToLabelAccessMap-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLabelToLabelAccessMap</h4>
+<pre>public static&nbsp;Map&lt;Label,List&lt;LabelAccess&gt;&gt;&nbsp;getLabelToLabelAccessMap(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a map: labels accessed from runnable -&gt; the corresponding label accesses</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Map: Label -&gt; List of LabelAccesses</dd>
+</dl>
+</li>
+</ul>
+<a name="getLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLabelAccessStatisticsMap</h4>
+<pre>public static&nbsp;Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;&nbsp;getLabelAccessStatisticsMap(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a map: labels accessed by the runnable -&gt; the corresponding LabelAccessStatistics</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Map:
+ Label -&gt; List of LabelAccessStatistics</dd>
+</dl>
+</li>
+</ul>
+<a name="getReadLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReadLabelAccessStatisticsMap</h4>
+<pre>public static&nbsp;Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;&nbsp;getReadLabelAccessStatisticsMap(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a map: labels read by the runnable -&gt; the corresponding LabelAccessStatistics</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Map: Label -&gt; List of LabelAccessStatistics</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriteLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriteLabelAccessStatisticsMap</h4>
+<pre>public static&nbsp;Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;&nbsp;getWriteLabelAccessStatisticsMap(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a map: labels written by the runnable -&gt; the corresponding LabelAccessStatistics</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Map: Label -&gt; List of LabelAccessStatistics</dd>
+</dl>
+</li>
+</ul>
+<a name="getAccessedLabelSet-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAccessedLabelSet</h4>
+<pre>public static&nbsp;Set&lt;Label&gt;&nbsp;getAccessedLabelSet(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a set of labels accessed by the process</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - process (Task or ISR)</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Set of Labels</dd>
+</dl>
+</li>
+</ul>
+<a name="getReadLabelSet-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReadLabelSet</h4>
+<pre>public static&nbsp;Set&lt;Label&gt;&nbsp;getReadLabelSet(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a set of labels read by the process</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - process (Task or ISR)</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Set of Labels</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriteLabelSet-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriteLabelSet</h4>
+<pre>public static&nbsp;Set&lt;Label&gt;&nbsp;getWriteLabelSet(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a set of labels written by the process</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - process (Task or ISR)</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Set of Labels</dd>
+</dl>
+</li>
+</ul>
+<a name="getLabelAccessList-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLabelAccessList</h4>
+<pre>public static&nbsp;List&lt;LabelAccess&gt;&nbsp;getLabelAccessList(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a list of all label accesses of the process</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - process (Task or ISR)</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of LabelAccesses</dd>
+</dl>
+</li>
+</ul>
+<a name="getLabelToLabelAccessMap-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLabelToLabelAccessMap</h4>
+<pre>public static&nbsp;Map&lt;Label,List&lt;LabelAccess&gt;&gt;&nbsp;getLabelToLabelAccessMap(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a map: accessed labels of the process -&gt; the corresponding label accesses</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - process (Task or ISR)</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Map: Label -&gt; List of LabelAccess</dd>
+</dl>
+</li>
+</ul>
+<a name="getLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLabelAccessStatisticsMap</h4>
+<pre>public static&nbsp;Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;&nbsp;getLabelAccessStatisticsMap(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a map: labels accessed by the process -&gt; the corresponding label access statistics</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - process (Task or ISR)</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Map: Label -&gt; List of LabelAccessStatistic</dd>
+</dl>
+</li>
+</ul>
+<a name="getReadLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReadLabelAccessStatisticsMap</h4>
+<pre>public static&nbsp;Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;&nbsp;getReadLabelAccessStatisticsMap(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a map: labels read the process -&gt; the corresponding label access statistics</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - process (Task or ISR)</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Map: Label -&gt; List of LabelAccessStatistic</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriteLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriteLabelAccessStatisticsMap</h4>
+<pre>public static&nbsp;Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;&nbsp;getWriteLabelAccessStatisticsMap(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a map: labels written by the process -&gt; the corresponding label access statistics</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - process (Task or ISR)</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Map: Label -&gt; List of LabelAccessStatistic</dd>
+</dl>
+</li>
+</ul>
+<a name="getLabelReadCount-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLabelReadCount</h4>
+<pre>public static&nbsp;float&nbsp;getLabelReadCount(Label&nbsp;label,
+ Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ <a href="../../../../../../org/eclipse/app4mc/amalthea/model/util/RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;timeType)</pre>
+<div class="block">Returns the reads from a process to a certain label. Evaluates the LabelAccessStatistic.
+ Definition of TimeType is possible. Null value returns the average case.</div>
+</li>
+</ul>
+<a name="getLabelWriteCount-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLabelWriteCount</h4>
+<pre>public static&nbsp;float&nbsp;getLabelWriteCount(Label&nbsp;label,
+ Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes,
+ <a href="../../../../../../org/eclipse/app4mc/amalthea/model/util/RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;timeType)</pre>
+<div class="block">Returns the writes from a process to a certain label. Evaluates the LabelAccessStatistic.
+ Definition of TimeType is possible. Null value returns the average case.</div>
+</li>
+</ul>
+<a name="getRunnableList-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRunnableList</h4>
+<pre>public static&nbsp;List&lt;Runnable&gt;&nbsp;getRunnableList(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a list of runnables called by the process</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - process (Task or ISR)</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of Runnables</dd>
+</dl>
+</li>
+</ul>
+<a name="getRunnableSet-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRunnableSet</h4>
+<pre>public static&nbsp;Set&lt;Runnable&gt;&nbsp;getRunnableSet(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a set of runnables called by the process - no duplicates</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - process (Task or ISR)</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Set of runnables called by the process</dd>
+</dl>
+</li>
+</ul>
+<a name="getLabelAccessCountFromStatistics-org.eclipse.app4mc.amalthea.model.LabelAccess-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLabelAccessCountFromStatistics</h4>
+<pre>public static&nbsp;float&nbsp;getLabelAccessCountFromStatistics(LabelAccess&nbsp;labelAcc,
+ <a href="../../../../../../org/eclipse/app4mc/amalthea/model/util/RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;accType)</pre>
+<div class="block">Returns the number of label accesses from a statistic.
+ The accType defines if the minimum, maximum or average accesses are returned.</div>
+</li>
+</ul>
+<a name="getReaderListOfLabel-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReaderListOfLabel</h4>
+<pre>public static&nbsp;List&lt;Runnable&gt;&nbsp;getReaderListOfLabel(Label&nbsp;label,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a list of runnables reading the label</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>label</code> - label</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of Runnables</dd>
+</dl>
+</li>
+</ul>
+<a name="getReadersSetOfLabel-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReadersSetOfLabel</h4>
+<pre>public static&nbsp;Set&lt;Runnable&gt;&nbsp;getReadersSetOfLabel(Label&nbsp;label,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a set of runnables reading the label</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>label</code> - label</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Set of Labels</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriterListOfLabel-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriterListOfLabel</h4>
+<pre>public static&nbsp;List&lt;Runnable&gt;&nbsp;getWriterListOfLabel(Label&nbsp;label,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a list of runnables writing the label</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>label</code> - label</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of Runnables</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriterSetOfLabel-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriterSetOfLabel</h4>
+<pre>public static&nbsp;Set&lt;Runnable&gt;&nbsp;getWriterSetOfLabel(Label&nbsp;label,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a set of runnables writing the label</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>label</code> - label</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Set of Runnables</dd>
+</dl>
+</li>
+</ul>
+<a name="collectSetEvents-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>collectSetEvents</h4>
+<pre>public static&nbsp;List&lt;SetEvent&gt;&nbsp;collectSetEvents(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Collects a list of set events calls for a process</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - process (Task or ISR)</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of SetEvents</dd>
+</dl>
+</li>
+</ul>
+<a name="collectClearEvents-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>collectClearEvents</h4>
+<pre>public static&nbsp;List&lt;ClearEvent&gt;&nbsp;collectClearEvents(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Collects a list of clear event calls for a process</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - process (Task or ISR)</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of ClearEvents</dd>
+</dl>
+</li>
+</ul>
+<a name="collectWaitEvents-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>collectWaitEvents</h4>
+<pre>public static&nbsp;List&lt;WaitEvent&gt;&nbsp;collectWaitEvents(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Collects a list of wait event calls for a process</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - process (Task or ISR)</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of WaitEvents</dd>
+</dl>
+</li>
+</ul>
+<a name="collectEventsOfProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>collectEventsOfProcess</h4>
+<pre>public static&nbsp;List&lt;CallSequenceItem&gt;&nbsp;collectEventsOfProcess(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Collects a list of event calls (clear, set or wait) of a process</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - process (Task or ISR)</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of CallSequenceItems</dd>
+</dl>
+</li>
+</ul>
+<a name="getInterTaskCommunication-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInterTaskCommunication</h4>
+<pre>public static&nbsp;List&lt;Label&gt;&nbsp;getInterTaskCommunication(Process&nbsp;sender,
+ Process&nbsp;receiver,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a list of all exchanged labels that are written by the sender process and read by the receiver process</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sender</code> - process (Task or ISR)</dd>
+<dd><code>receiver</code> - process (Task or ISR)</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of Labels</dd>
+</dl>
+</li>
+</ul>
+<a name="getProcesses-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProcesses</h4>
+<pre>public static&nbsp;List&lt;Process&gt;&nbsp;getProcesses(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a list of processes calling the runnable</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of Processes</dd>
+</dl>
+</li>
+</ul>
+<a name="getRunnableCallParents-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRunnableCallParents</h4>
+<pre>public static&nbsp;List&lt;Runnable&gt;&nbsp;getRunnableCallParents(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a list of runnables directly calling the runnable</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of Runnables</dd>
+</dl>
+</li>
+</ul>
+<a name="getCalledRunnables-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCalledRunnables</h4>
+<pre>public static&nbsp;List&lt;Runnable&gt;&nbsp;getCalledRunnables(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a list of runnables directly called by the runnable</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of Runnables</dd>
+</dl>
+</li>
+</ul>
+<a name="getExecutionNeeds-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getExecutionNeeds</h4>
+<pre>public static&nbsp;List&lt;ExecutionNeed&gt;&nbsp;getExecutionNeeds(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a list of all execution needs for a given runnable</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of ExecutionNeeds</dd>
+</dl>
+</li>
+</ul>
+<a name="getExecutionNeeds-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getExecutionNeeds</h4>
+<pre>public static&nbsp;List&lt;ExecutionNeed&gt;&nbsp;getExecutionNeeds(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a list of all execution needs for a given process</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - process (Task or ISR)</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of ExecutionNeeds</dd>
+</dl>
+</li>
+</ul>
+<a name="getTicks-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTicks</h4>
+<pre>public static&nbsp;List&lt;Ticks&gt;&nbsp;getTicks(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a list of all ticks for a given runnable</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of Ticks</dd>
+</dl>
+</li>
+</ul>
+<a name="getTicks-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTicks</h4>
+<pre>public static&nbsp;List&lt;Ticks&gt;&nbsp;getTicks(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a list of all ticks for a given process</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - process (Task or ISR)</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of Ticks</dd>
+</dl>
+</li>
+</ul>
+<a name="getServerCallSet-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getServerCallSet</h4>
+<pre>public static&nbsp;Set&lt;ServerCall&gt;&nbsp;getServerCallSet(Runnable&nbsp;runnable,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a set of server calls for a runnable</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>runnable</code> - runnable</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Set of ServerCall</dd>
+</dl>
+</li>
+</ul>
+<a name="getServerCallSet-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getServerCallSet</h4>
+<pre>public static&nbsp;Set&lt;ServerCall&gt;&nbsp;getServerCallSet(Process&nbsp;process,
+ EMap&lt;ModeLabel,ModeLiteral&gt;&nbsp;modes)</pre>
+<div class="block">Returns a set of server calls for a process</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>process</code> - process (Task or ISR)</dd>
+<dd><code>modes</code> - (optional) - null works</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Set of ServerCall</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/TimeUtil.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/TimeUtil.html
new file mode 100644
index 0000000..20c13a1
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/TimeUtil.html
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>TimeUtil</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.app4mc.amalthea.model.util</div>
+<h2 title="Class TimeUtil" class="title">Class TimeUtil</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>TimeUtil</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TimeUtil</span>
+extends Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="#TimeUtil--">TimeUtil</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static Time</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#convertToTimeUnit-org.eclipse.app4mc.amalthea.model.Time-org.eclipse.app4mc.amalthea.model.TimeUnit-">convertToTimeUnit</a></span>(Time&nbsp;time,
+ TimeUnit&nbsp;unit)</code>
+<div class="block">Converts a Time object to the given TimeUnit.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static List&lt;TimeUnit&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="#getTimeUnitList--">getTimeUnitList</a></span>()</code>
+<div class="block">Returns a list with all possible Units</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TimeUtil--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TimeUtil</h4>
+<pre>public&nbsp;TimeUtil()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTimeUnitList--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTimeUnitList</h4>
+<pre>public static&nbsp;List&lt;TimeUnit&gt;&nbsp;getTimeUnitList()</pre>
+<div class="block">Returns a list with all possible Units</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>TimeUnit.VALUES</dd>
+</dl>
+</li>
+</ul>
+<a name="convertToTimeUnit-org.eclipse.app4mc.amalthea.model.Time-org.eclipse.app4mc.amalthea.model.TimeUnit-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>convertToTimeUnit</h4>
+<pre>public static&nbsp;Time&nbsp;convertToTimeUnit(Time&nbsp;time,
+ TimeUnit&nbsp;unit)</pre>
+<div class="block">Converts a Time object to the given TimeUnit.
+ Note: when convert from small unit to bigger unit, the function will round the number e.g 5200Ps = 5Ns</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/package-summary.html b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/package-summary.html
new file mode 100644
index 0000000..c07fa7b
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/model/util/package-summary.html
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Mon Jan 28 10:50:17 CET 2019 -->
+<title>org.eclipse.app4mc.amalthea.model.util</title>
+<meta name="date" content="2019-01-28">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.eclipse.app4mc.amalthea.model.util</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="CustomPropertyUtil.html" title="class in org.eclipse.app4mc.amalthea.model.util">CustomPropertyUtil</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="DeploymentUtil.html" title="class in org.eclipse.app4mc.amalthea.model.util">DeploymentUtil</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="FactoryUtil.html" title="class in org.eclipse.app4mc.amalthea.model.util">FactoryUtil</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="HardwareUtil.html" title="class in org.eclipse.app4mc.amalthea.model.util">HardwareUtil</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="ModelUtil.html" title="class in org.eclipse.app4mc.amalthea.model.util">ModelUtil</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="RuntimeUtil.html" title="class in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="SoftwareUtil.html" title="class in org.eclipse.app4mc.amalthea.model.util">SoftwareUtil</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="TimeUtil.html" title="class in org.eclipse.app4mc.amalthea.model.util">TimeUtil</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Summary table, listing enums, and an explanation">
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="RuntimeUtil.AccessDirection.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.AccessDirection</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="RuntimeUtil.PositionType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.PositionType</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/stylesheet.css b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/stylesheet.css
new file mode 100644
index 0000000..98055b2
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/javadoc/stylesheet.css
@@ -0,0 +1,574 @@
+/* Javadoc style sheet */
+/*
+Overall document style
+*/
+
+@import url('resources/fonts/dejavu.css');
+
+body {
+ background-color:#ffffff;
+ color:#353833;
+ font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
+ font-size:14px;
+ margin:0;
+}
+a:link, a:visited {
+ text-decoration:none;
+ color:#4A6782;
+}
+a:hover, a:focus {
+ text-decoration:none;
+ color:#bb7a2a;
+}
+a:active {
+ text-decoration:none;
+ color:#4A6782;
+}
+a[name] {
+ color:#353833;
+}
+a[name]:hover {
+ text-decoration:none;
+ color:#353833;
+}
+pre {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+}
+h1 {
+ font-size:20px;
+}
+h2 {
+ font-size:18px;
+}
+h3 {
+ font-size:16px;
+ font-style:italic;
+}
+h4 {
+ font-size:13px;
+}
+h5 {
+ font-size:12px;
+}
+h6 {
+ font-size:11px;
+}
+ul {
+ list-style-type:disc;
+}
+code, tt {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+ padding-top:4px;
+ margin-top:8px;
+ line-height:1.4em;
+}
+dt code {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+ padding-top:4px;
+}
+table tr td dt code {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+ vertical-align:top;
+ padding-top:4px;
+}
+sup {
+ font-size:8px;
+}
+/*
+Document title and Copyright styles
+*/
+.clear {
+ clear:both;
+ height:0px;
+ overflow:hidden;
+}
+.aboutLanguage {
+ float:right;
+ padding:0px 21px;
+ font-size:11px;
+ z-index:200;
+ margin-top:-9px;
+}
+.legalCopy {
+ margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+ color:#FFFFFF;
+ text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+ color:#bb7a2a;
+}
+.tab {
+ background-color:#0066FF;
+ color:#ffffff;
+ padding:8px;
+ width:5em;
+ font-weight:bold;
+}
+/*
+Navigation bar styles
+*/
+.bar {
+ background-color:#4D7A97;
+ color:#FFFFFF;
+ padding:.8em .5em .4em .8em;
+ height:auto;/*height:1.8em;*/
+ font-size:11px;
+ margin:0;
+}
+.topNav {
+ background-color:#4D7A97;
+ color:#FFFFFF;
+ float:left;
+ padding:0;
+ width:100%;
+ clear:right;
+ height:2.8em;
+ padding-top:10px;
+ overflow:hidden;
+ font-size:12px;
+}
+.bottomNav {
+ margin-top:10px;
+ background-color:#4D7A97;
+ color:#FFFFFF;
+ float:left;
+ padding:0;
+ width:100%;
+ clear:right;
+ height:2.8em;
+ padding-top:10px;
+ overflow:hidden;
+ font-size:12px;
+}
+.subNav {
+ background-color:#dee3e9;
+ float:left;
+ width:100%;
+ overflow:hidden;
+ font-size:12px;
+}
+.subNav div {
+ clear:left;
+ float:left;
+ padding:0 0 5px 6px;
+ text-transform:uppercase;
+}
+ul.navList, ul.subNavList {
+ float:left;
+ margin:0 25px 0 0;
+ padding:0;
+}
+ul.navList li{
+ list-style:none;
+ float:left;
+ padding: 5px 6px;
+ text-transform:uppercase;
+}
+ul.subNavList li{
+ list-style:none;
+ float:left;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+ color:#FFFFFF;
+ text-decoration:none;
+ text-transform:uppercase;
+}
+.topNav a:hover, .bottomNav a:hover {
+ text-decoration:none;
+ color:#bb7a2a;
+ text-transform:uppercase;
+}
+.navBarCell1Rev {
+ background-color:#F8981D;
+ color:#253441;
+ margin: auto 5px;
+}
+.skipNav {
+ position:absolute;
+ top:auto;
+ left:-9999px;
+ overflow:hidden;
+}
+/*
+Page header and footer styles
+*/
+.header, .footer {
+ clear:both;
+ margin:0 20px;
+ padding:5px 0 0 0;
+}
+.indexHeader {
+ margin:10px;
+ position:relative;
+}
+.indexHeader span{
+ margin-right:15px;
+}
+.indexHeader h1 {
+ font-size:13px;
+}
+.title {
+ color:#2c4557;
+ margin:10px 0;
+}
+.subTitle {
+ margin:5px 0 0 0;
+}
+.header ul {
+ margin:0 0 15px 0;
+ padding:0;
+}
+.footer ul {
+ margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+ list-style:none;
+ font-size:13px;
+}
+/*
+Heading styles
+*/
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+ background-color:#dee3e9;
+ border:1px solid #d0d9e0;
+ margin:0 0 6px -8px;
+ padding:7px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+ background-color:#dee3e9;
+ border:1px solid #d0d9e0;
+ margin:0 0 6px -8px;
+ padding:7px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+ padding:0;
+ margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+ padding:0px 0 20px 0;
+}
+/*
+Page layout container styles
+*/
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
+ clear:both;
+ padding:10px 20px;
+ position:relative;
+}
+.indexContainer {
+ margin:10px;
+ position:relative;
+ font-size:12px;
+}
+.indexContainer h2 {
+ font-size:13px;
+ padding:0 0 3px 0;
+}
+.indexContainer ul {
+ margin:0;
+ padding:0;
+}
+.indexContainer ul li {
+ list-style:none;
+ padding-top:2px;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+ font-size:12px;
+ font-weight:bold;
+ margin:10px 0 0 0;
+ color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+ margin:5px 0 10px 0px;
+ font-size:14px;
+ font-family:'DejaVu Sans Mono',monospace;
+}
+.serializedFormContainer dl.nameValue dt {
+ margin-left:1px;
+ font-size:1.1em;
+ display:inline;
+ font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+ margin:0 0 0 1px;
+ font-size:1.1em;
+ display:inline;
+}
+/*
+List styles
+*/
+ul.horizontal li {
+ display:inline;
+ font-size:0.9em;
+}
+ul.inheritance {
+ margin:0;
+ padding:0;
+}
+ul.inheritance li {
+ display:inline;
+ list-style:none;
+}
+ul.inheritance li ul.inheritance {
+ margin-left:15px;
+ padding-left:15px;
+ padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+ margin:10px 0 10px 0;
+ padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+ list-style:none;
+ margin-bottom:15px;
+ line-height:1.4;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+ padding:0px 20px 5px 10px;
+ border:1px solid #ededed;
+ background-color:#f8f8f8;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+ padding:0 0 5px 8px;
+ background-color:#ffffff;
+ border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+ margin-left:0;
+ padding-left:0;
+ padding-bottom:15px;
+ border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+ list-style:none;
+ border-bottom:none;
+ padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+ margin-top:0;
+ margin-bottom:1px;
+}
+/*
+Table styles
+*/
+.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
+ width:100%;
+ border-left:1px solid #EEE;
+ border-right:1px solid #EEE;
+ border-bottom:1px solid #EEE;
+}
+.overviewSummary, .memberSummary {
+ padding:0px;
+}
+.overviewSummary caption, .memberSummary caption, .typeSummary caption,
+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
+ position:relative;
+ text-align:left;
+ background-repeat:no-repeat;
+ color:#253441;
+ font-weight:bold;
+ clear:none;
+ overflow:hidden;
+ padding:0px;
+ padding-top:10px;
+ padding-left:1px;
+ margin:0px;
+ white-space:pre;
+}
+.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
+.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
+.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
+.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
+.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
+.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
+ color:#FFFFFF;
+}
+.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
+ white-space:nowrap;
+ padding-top:5px;
+ padding-left:12px;
+ padding-right:12px;
+ padding-bottom:7px;
+ display:inline-block;
+ float:left;
+ background-color:#F8981D;
+ border: none;
+ height:16px;
+}
+.memberSummary caption span.activeTableTab span {
+ white-space:nowrap;
+ padding-top:5px;
+ padding-left:12px;
+ padding-right:12px;
+ margin-right:3px;
+ display:inline-block;
+ float:left;
+ background-color:#F8981D;
+ height:16px;
+}
+.memberSummary caption span.tableTab span {
+ white-space:nowrap;
+ padding-top:5px;
+ padding-left:12px;
+ padding-right:12px;
+ margin-right:3px;
+ display:inline-block;
+ float:left;
+ background-color:#4D7A97;
+ height:16px;
+}
+.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
+ padding-top:0px;
+ padding-left:0px;
+ padding-right:0px;
+ background-image:none;
+ float:none;
+ display:inline;
+}
+.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
+ display:none;
+ width:5px;
+ position:relative;
+ float:left;
+ background-color:#F8981D;
+}
+.memberSummary .activeTableTab .tabEnd {
+ display:none;
+ width:5px;
+ margin-right:3px;
+ position:relative;
+ float:left;
+ background-color:#F8981D;
+}
+.memberSummary .tableTab .tabEnd {
+ display:none;
+ width:5px;
+ margin-right:3px;
+ position:relative;
+ background-color:#4D7A97;
+ float:left;
+
+}
+.overviewSummary td, .memberSummary td, .typeSummary td,
+.useSummary td, .constantsSummary td, .deprecatedSummary td {
+ text-align:left;
+ padding:0px 0px 12px 10px;
+}
+th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
+td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
+ vertical-align:top;
+ padding-right:0px;
+ padding-top:8px;
+ padding-bottom:3px;
+}
+th.colFirst, th.colLast, th.colOne, .constantsSummary th {
+ background:#dee3e9;
+ text-align:left;
+ padding:8px 3px 3px 7px;
+}
+td.colFirst, th.colFirst {
+ white-space:nowrap;
+ font-size:13px;
+}
+td.colLast, th.colLast {
+ font-size:13px;
+}
+td.colOne, th.colOne {
+ font-size:13px;
+}
+.overviewSummary td.colFirst, .overviewSummary th.colFirst,
+.useSummary td.colFirst, .useSummary th.colFirst,
+.overviewSummary td.colOne, .overviewSummary th.colOne,
+.memberSummary td.colFirst, .memberSummary th.colFirst,
+.memberSummary td.colOne, .memberSummary th.colOne,
+.typeSummary td.colFirst{
+ width:25%;
+ vertical-align:top;
+}
+td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
+ font-weight:bold;
+}
+.tableSubHeadingColor {
+ background-color:#EEEEFF;
+}
+.altColor {
+ background-color:#FFFFFF;
+}
+.rowColor {
+ background-color:#EEEEEF;
+}
+/*
+Content styles
+*/
+.description pre {
+ margin-top:0;
+}
+.deprecatedContent {
+ margin:0;
+ padding:10px 0;
+}
+.docSummary {
+ padding:0;
+}
+
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+ font-style:normal;
+}
+
+div.block {
+ font-size:14px;
+ font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+
+td.colLast div {
+ padding-top:0px;
+}
+
+
+td.colLast a {
+ padding-bottom:3px;
+}
+/*
+Formatting effect styles
+*/
+.sourceLineNo {
+ color:green;
+ padding:0 30px 0 0;
+}
+h1.hidden {
+ visibility:hidden;
+ overflow:hidden;
+ font-size:10px;
+}
+.block {
+ display:block;
+ margin:3px 10px 2px 0px;
+ color:#474747;
+}
+.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
+.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
+.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
+ font-weight:bold;
+}
+.deprecationComment, .emphasizedPhrase, .interfaceName {
+ font-style:italic;
+}
+
+div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
+div.block div.block span.interfaceName {
+ font-style:normal;
+}
+
+div.contentContainer ul.blockList li.blockList h2{
+ padding-bottom:0px;
+}
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/zip/ecore-definitions.zip b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/zip/ecore-definitions.zip
new file mode 100644
index 0000000..3b0a9b9
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/zip/ecore-definitions.zip
Binary files differ
diff --git a/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/zip/xml-schema-definitions.zip b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/zip/xml-schema-definitions.zip
new file mode 100644
index 0000000..8a635ad
--- /dev/null
+++ b/websites/www.eclipse.org-app4mc-hugo/site/static/help/app4mc-0.9.3/zip/xml-schema-definitions.zip
Binary files differ

Back to the top