Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit d38d17a

Browse files
Update README.md
Signed-off-by: SysMLinJavaModeler <[email protected]>
1 parent 1b33d42 commit d38d17a

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

README.md

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
# SysMLinJava - high precision MBSE
22
## Concept
3-
The SysMLinJava API is A Java-based model development kit (MDK) for high-precision modeling as executable SysML models
4-
Modeling in SysML has traditionally meant using a commercially available tool to draw the structural and behavioral elements of the model as SysML diagrams. This dependence on drawings has more often than not resulted in costly effort to learn and manipulate the drawing tool and imposed considerable frustration in modeling complex behaviors. In addition, the ability of the drawings-based tool to execute/test the model has been frustratingly limited and/or esoteric to the vendor product.
3+
The SysMLinJava API is A Java-based model development kit (MDK) for high-precision modeling as executable SysML models. Modeling in SysML has traditionally meant using a commercially available tool to draw the structural and behavioral elements of the model as SysML diagrams. This dependence on drawings has more often than not resulted in costly effort to learn and manipulate the drawing tool and imposed considerable frustration in modeling complex behaviors. In addition, the ability of the drawings-based tool to execute/test the model has been frustratingly limited and/or esoteric to the vendor product.
54

6-
SysMLinJava was developed to make extensive, precise, and executable models relatively easy to develop, analyze, and test. Whereas SysML is based-on the object-oriented paradigm, it's a natural progession to use an object-oriented programming language to develop and execute SysML models. Rather than fumble with drawing tools to specify model objects, the systems engineer can quickly generate model objects as Java classes using any of the myriad powerful easy-to-use Java software development IDEs available today. And the "ultimate" SysML modeling capability - the executable model - is easily realized through Java's extensive and powerful execution capabilities.
5+
SysMLinJava was developed to make extensive, precise, and executable models relatively easy to develop, analyze, and test. Whereas SysML is based-on the object-oriented paradigm, it's a natural progession to use an object-oriented programming language to develop and execute SysML models. Rather than fumble with drawing tools to specify model objects, the systems engineer can quickly generate model objects as Java classes using any of the myriad powerful easy-to-use Java software development IDEs available today. And the "ultimate" SysML modeling capability - the executable model - is easily realized through Java's extensive and powerful execution capabilities.
76

8-
SysMLinJava was designed/developed to comply with the OMG standard for SysML - a drawings-based language. As a Java-based implementation, SysMLinJava cannot technically comply with the SysML standard. Therefore, SysMLinJava does not claim to be in technical compliance with the SysML standard, but rather SysMLinJava is a representation of the SysML meta-model in the Java programming language so that the executable modeling capabilities of a programming language can leveraged for SysML models.
7+
SysMLinJava was designed/developed to comply with the OMG standard for SysML - a drawings-based language. As a Java-based implementation, SysMLinJava cannot technically comply with the SysML standard. Therefore, SysMLinJava does not claim to be in technical compliance with the SysML standard, but rather SysMLinJava is a representation of the SysML meta-model in the Java programming language so that the executable modeling capabilities of a programming language can leveraged for SysML models.
98

109
## SysML Elements in Java
11-
The elements of SysML - blocks, state machines, value types, activities, etc. - are all mapped to SysMLinJava classes. The SysMLinJava classes represent the properties of the SysML elements as Java variables and methods. The block values, for instance, are represented as Java variables that are specializations of the SysMLValueType. Block operations and receptions are represented by Java methods. The block's state machine is represented by a variable that is an extension of the SysMLStateMachine class. And so forth. An actual code example of a SysML block implementation is provided as follows. The example demonstrates how SysML modeling with SysMLinJava is relatively easy and straightforward.
10+
The elements of SysML - blocks, state machines, value types, activities, etc. - are all mapped to SysMLinJava classes. The SysMLinJava classes represent the properties of the SysML elements as Java variables and methods. The block values, for instance, are represented as Java variables that are specializations of the SysMLValueType. Block operations and receptions are represented by Java methods. The block's state machine is represented by a variable that is an extension of the SysMLStateMachine class. And so forth. An actual code example of a SysML block implementation is provided as follows. The example demonstrates how SysML modeling with SysMLinJava is relatively easy and straightforward.
1211

1312
## Example Block
1413
Of course the primary element-type of the SysML model is the block. SysMLinJava reflects this primacy in its implementation as well. Based on the SysMLBlock class, the Block in SysMLinJava is defined by its many properties - values, flows, state machine, ports, constraints, constraint blocks, comments, requirements, connectors, operations, receptions, activities, and many more. All of these properties map to Java fields/variables and Java methods. This mapping can be best visualized by an example block shown as follows.
@@ -104,7 +103,7 @@ The example shows a block representation of a simple traffic signal control syst
104103

105104
The block also declares a number of overridden "create..." methods. While not properties of the block, per se, the methods perform all the creations/initializations of the block's properties, i.e. initialization of the values, creation of the ports, etc. These creation/initialization methods are invoked automatically by the `SysMLBlock`'s constructor, so the modeler need only add the property initialization statements to the appropriate "create..." method and the properties will be initialized in the correct sequence as part of block construction.
106105

107-
Although it is not explicitly shown in the example, the system model block is executable. Higher-level model elements, e.g. domain objects, can invoke the system block's "start" operation which executes the block's state machine behavior in a dedicated Java thread. This state machine then receives and responds to events that might be submitted to it by its ports, by other blocks, and/or by operations/receptions of the block itself. In any case, this structural and behavioral model of a system can be made as complex and precise as is needed while being fully executable and in accordance with the SysML standard.
106+
Although it is not explicitly shown in the example, the system model block is executable. Higher-level model elements, e.g. domain objects, can invoke the system block's "start" operation which executes the block's state machine behavior in a dedicated Java thread. This state machine then receives and responds to events that might be submitted to it by its ports, by other blocks, and/or by operations/receptions of the block itself. In any case, this structural and behavioral model of a system can be made as complex and precise as is needed while being fully executable and in accordance with the SysML standard.
108107

109108
In addition to the block, SysMLinJava provides explicit support for other commonly used SysML elements to include:
110109
- state machine

0 commit comments

Comments
 (0)