Skip to content

Commit

Permalink
Updated for 2021-10.
Browse files Browse the repository at this point in the history
  • Loading branch information
seidewitz committed Nov 12, 2021
1 parent ae9f0d2 commit b10ea68
Show file tree
Hide file tree
Showing 56 changed files with 259 additions and 234 deletions.
Binary file modified doc/1-Kernel_Modeling_Language.pdf
Binary file not shown.
Binary file modified doc/2-OMG_Systems_Modeling_Language.pdf
Binary file not shown.
Binary file modified doc/3-Systems_Modeling_API_and_Services.pdf
Binary file not shown.
Binary file modified doc/Intro to the SysML v2 Language-Graphical Notation.pdf
Binary file not shown.
Binary file modified doc/Intro to the SysML v2 Language-Textual Notation.pdf
Binary file not shown.
Binary file modified install/eclipse/org.omg.sysml.site.zip
Binary file not shown.
Binary file modified install/jupyter/README.pdf
Binary file not shown.
2 changes: 1 addition & 1 deletion install/jupyter/install.bat
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

@echo off

set /A SYSML_VERSION="0.16.0"
set /A SYSML_VERSION="0.17.0"

echo --- Step 1: Testing Conda installation ---
where conda
Expand Down
2 changes: 1 addition & 1 deletion install/jupyter/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

set -e

SYSML_VERSION="0.16.0"
SYSML_VERSION="0.17.0"

echo "--- Step 1: Testing Conda installation ---"
command -v conda || (echo "Conda is not installed. Please install Conda and re-run." && return 1)
Expand Down
2 changes: 1 addition & 1 deletion kerml/src/examples/Behavior Examples/TakePicture.kerml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ behavior TakePicture() {
step step1: Focus[1] (out xrsl);
step step2: Shoot[1] (in xsf);

flow exposure[1] from step1.xrsl to step2.xsf;
succession flow exposure[1] from step1.xrsl to step2.xsf;

succession step1 then camera.focusedState;
succession step2 then camera.shotState;
Expand Down
4 changes: 2 additions & 2 deletions kerml/src/examples/Simple Tests/Classes.kerml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ package Classes {

feature f: A;

public class id '1' A {
public class <'1'> A {
feature b: B;
protected in c: C;
}

abstract class id '2' B {
abstract class <'2'> B {
public abstract feature a: A;
package P { }
}
Expand Down
2 changes: 1 addition & 1 deletion kerml/src/examples/Simple Tests/Comments.kerml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ package Comments {
}
/* abc */
class A {
doc id a /* Documentation comment on A*/
doc <a> /* Documentation comment on A*/
comment about a /* Comment about documenation with ID 'a' */
}
}
8 changes: 4 additions & 4 deletions kerml/src/examples/Simple Tests/Elements.kerml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
element id e145;
element <e145>;

element id '1.2.4' MyName;
element <'1.2.4'> MyName;

element id A {
element <A> {
doc /* Element A is related to element B. */
relationship to B;
}

element id B {
element <B> {
language "HTML"
/* <a href="https://plm.elsewhere.com/part?id="1234"/> */
}
4 changes: 2 additions & 2 deletions kerml/src/examples/Simple Tests/Features.kerml
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,11 @@ package Features {
}

classifier RegisteredAsset {
feature identifier[0..1];
composite readonly feature identifier[0..1];
}

classifier Vehicle :> RegisteredAsset {
feature vin[1];
derived feature vin[1] = identifier;
}

feature legalIdentification;
Expand Down
8 changes: 4 additions & 4 deletions kerml/src/examples/Simple Tests/Relationships.kerml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
element id '1' A;
element id '2' B;
element id '3' C;
relationship id '4' R from A to B, C;
element <'1'> A;
element <'2'> B;
element <'3'> C;
relationship <'4'> R from A to B, C;

package P1 {
element S;
Expand Down
27 changes: 27 additions & 0 deletions sysml.library/Kernel Library/Occurrences.kerml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,18 @@ package Occurrences {
*/
feature successors: Occurrence[0..*] subsets occurrences;

/**
* Occurrences that end just before this occurrence starts, with no
* possibility of other occurrences happening in the time between them.
*/
feature immediatePredecessors: Occurrence[0..*] subsets predecessors;

/**
* Occurrences that start just after this occurrence ends, with no
* possibility of other occurrences happening in the time between them.
*/
feature immediateSuccessors: Occurrence[0..*] subsets successors;

/**
* Occurrences that start no earlier than and end no later than
* this occurrence, including at least this occurrence.
Expand Down Expand Up @@ -221,6 +233,20 @@ package Occurrences {
inv { earlierOccurrence != laterOccurrence }
}

/**
* HappensJustBefore is HappensBefore asserting that the earlierOccurrence happens just
* before the laterOccurrence, with with no possibility of other occurrences happening in the
* time between them.
*/
assoc HappensJustBefore specializes HappensBefore {
end feature redefines earlierOccurrence: Occurrence[0..*] subsets laterOccurrence.immediatePredecessors;
end feature redefines laterOccurrence: Occurrence[0..*] subsets earlierOccurrence.immediateSuccessors;

private feature all betweenOccurrence: Occurrence[0];
private succession earlierOccurrence[1] then betweenOccurrence[0..*];
private succession betweenOccurrence[0..*] then laterOccurrence[1];
}

/**
* PortionOf asserts one occurrence is a portion of another, including at least itself.
*/
Expand Down Expand Up @@ -253,4 +279,5 @@ package Occurrences {
end feature earlierOccurrence: Occurrence[0..*] redefines HappensBefore::earlierOccurrence, binaryLinks::source;
end feature laterOccurrence: Occurrence[0..*] redefines HappensBefore::laterOccurrence, binaryLinks::target;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -67,24 +67,24 @@ package AHFNorwaySequences {

// Successions on each lifetime
// tlu
succession call_getItems.startShot
first call_getItems.startShot
then returnack.endShot;
// apisp (taking both ports)
succession publish_returnallitems.startShot
first publish_returnallitems.startShot
then call_getItems.endShot;
succession call_getItems.endShot
first call_getItems.endShot
then returnallitems.startShot;
succession returnallitems.startShot
first returnallitems.startShot
then returnack.startShot;
// MQTTServer
succession publish_returnallitems.endShot
first publish_returnallitems.endShot
then subscribe_returnallitems.endShot;
succession subscribe_returnallitems
first subscribe_returnallitems
then returnallitems.endShot;
succession returnallitems.endShot
first returnallitems.endShot
then sendallitems.startShot;
// apisc
succession subscribe_returnallitems.startShot
first subscribe_returnallitems.startShot
then sendallitems.endShot;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ package 'Flashlight Example' {
}

interface userToFlashlight connect user.onOffCmdPort to flashlight.onOffCmdPort {
ref stream :> illuminateRegion.onOffCmdFlow
ref flow :> illuminateRegion.onOffCmdFlow
from source.onOffCmd to target.onOffCmd;
}

Expand Down Expand Up @@ -51,11 +51,11 @@ package 'Flashlight Example' {
action illuminateRegion {
action sendOnOffCmd(out onOffCmd: OnOffCmd);

flow onOffCmdFlow from sendOnOffCmd.onOffCmd to produceDirectedLight.onOffCmd;
succession flow onOffCmdFlow from sendOnOffCmd.onOffCmd to produceDirectedLight.onOffCmd;

action produceDirectedLight(in onOffCmd, out light: Light);

flow lightFlow from produceDirectedLight.light to reflectLight.light;
succession flow lightFlow from produceDirectedLight.light to reflectLight.light;

action reflectLight(in light: Light);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,12 @@ package ServerSequenceRealization_3 {
}
}

stream publish_request from producerBehavior.publish.request to publicationPort.publish;
flow publish_request from producerBehavior.publish.request to publicationPort.publish;

}

interface publication_interface : PublicationInterface connect producer_3.publicationPort to server_3.publicationPort {
stream publish_request from publication_interface.source.publish to publication_interface.target.publish;
flow publish_request from publication_interface.source.publish to publication_interface.target.publish;
}

part server_3[1] {
Expand All @@ -55,9 +55,9 @@ package ServerSequenceRealization_3 {
out ref :>> deliver;
}

stream subscribe_request from subscriptionPort.subscribe to serverBehavior.subscribing.request;
stream publish_request from publicationPort.publish to serverBehavior.publishing.request;
stream deliver_response from serverBehavior.delivering.response to subscriptionPort.deliver;
flow subscribe_request from subscriptionPort.subscribe to serverBehavior.subscribing.request;
flow publish_request from publicationPort.publish to serverBehavior.publishing.request;
flow deliver_response from serverBehavior.delivering.response to subscriptionPort.deliver;

perform action serverBehavior {

Expand Down Expand Up @@ -88,8 +88,8 @@ package ServerSequenceRealization_3 {
}

interface subscription_interface : SubscriptionInterface connect consumer_3.subscriptionPort to server_3.subscriptionPort {
stream subscribe_request from subscription_interface.source.subscribe to subscription_interface.target.subscribe;
stream deliver_response from subscription_interface.target.deliver to subscription_interface.source.deliver;
flow subscribe_request from subscription_interface.source.subscribe to subscription_interface.target.subscribe;
flow deliver_response from subscription_interface.target.deliver to subscription_interface.source.deliver;
}

part consumer_3[1] {
Expand All @@ -100,8 +100,8 @@ package ServerSequenceRealization_3 {
in ref :>> deliver;
}

stream subscribe_request from consumerBehavior.subscribe.request to subscriptionPort.subscribe;
stream deliver_response from subscriptionPort.deliver to consumerBehavior.delivery.response;
flow subscribe_request from consumerBehavior.subscribe.request to subscriptionPort.subscribe;
flow deliver_response from subscriptionPort.deliver to consumerBehavior.delivery.response;

perform action consumerBehavior {
action subscribe {
Expand Down Expand Up @@ -131,19 +131,19 @@ package ServerSequenceRealization_3 {
event consumerBehavior.delivery[1] :>> deliver_target_event;
}

stream :>> publish_message from producer.producerBehavior.publish.request to server.serverBehavior.publishing.request {
flow :>> publish_message from producer.producerBehavior.publish.request to server.serverBehavior.publishing.request {
event producer.publish_request[1];
then event publication_interface.publish_request[1];
then event server.publish_request[1];
}

stream :>> subscribe_message from consumer.consumerBehavior.subscribe.request to server.serverBehavior.subscribing.request {
flow :>> subscribe_message from consumer.consumerBehavior.subscribe.request to server.serverBehavior.subscribing.request {
event consumer.subscribe_request[1];
then event subscription_interface.subscribe_request[1];
then event server.subscribe_request[1];
}

stream :>> deliver_message from server.serverBehavior.delivering.response to consumer.consumerBehavior.delivery.response {
flow :>> deliver_message from server.serverBehavior.delivering.response to consumer.consumerBehavior.delivery.response {
event server.deliver_response[1];
then event subscription_interface.deliver_response[1];
then event consumer.deliver_response[1];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package RequirementMetadataExample {
import RiskMetadata::*;
import RiskLevelEnum::*;

requirement id '1' vehicleMassRequirement {
requirement <'1'> vehicleMassRequirement {
doc /* The total mass of a vehicle shall be less than or equal to the required mass. */

@StatusInfo {
Expand Down
12 changes: 6 additions & 6 deletions sysml/src/examples/Requirements Examples/HSUVRequirements.sysml
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
package HSUVRequirements {
import Requirements::*;

requirement id 'UR1.1' Load: FunctionalRequirementCheck {
requirement <'UR1.1'> Load: FunctionalRequirementCheck {
// The following requirements are composite sub-requirements.
requirement Passengers;
requirement FuelCapacity;
requirement Cargo;
}

requirement id 'UR1.2' EcoFriendliness: PerformanceRequirementCheck {
requirement id 'URI1.2.1' Emissions: PerformanceRequirementCheck {
requirement <'UR1.2'> EcoFriendliness: PerformanceRequirementCheck {
requirement <'URI1.2.1'> Emissions: PerformanceRequirementCheck {
/* The car shall meet 2010 Kyoto Accord emissions standards. */
}
}

requirement id 'UR1.3' Performance: PerformanceRequirementCheck {
requirement <'UR1.3'> Performance: PerformanceRequirementCheck {
requirement Acceleration;
requirement id 'UR1.3.1' FuelEconomy: PerformanceRequirementCheck {
requirement <'UR1.3.1'> FuelEconomy: PerformanceRequirementCheck {
/* User shall obtain fuel economy better than that provided by
* 95% of cars built in 2004.
*/
Expand All @@ -26,7 +26,7 @@ package HSUVRequirements {
requirement Power;
}

requirement id 'UR1.4' Ergonomics;
requirement <'UR1.4'> Ergonomics;

// Syntactically, should this be explicitly marked as a "group"?
requirement HybridSUVSpec {
Expand Down
14 changes: 7 additions & 7 deletions sysml/src/examples/Room Model/RoomModel.sysml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ package RoomModel {
}
}
package Flow_Definitions {
// Conveyed items between Hallway, Classroom, and Storageroom
// Conveyed items between Hallway, Classroom, and Storageroom
part def Air;
part def Furniture;
part def Student;
Expand All @@ -51,22 +51,22 @@ package RoomModel {
part h:Hallway;

// Connectors and item flows between hallway and classroom
stream HallToClassroom_Air
flow HallToClassroom_Air
from h.hallExit_to_Classroom.air
to c.classEntry.air;
stream HallToClassroom_Furniture
flow HallToClassroom_Furniture
from h.hallExit_to_Classroom.furniture
to c.classEntry.furniture;
stream HallToClassroom_Student
flow HallToClassroom_Student
from h.hallExit_to_Classroom.student
to c.classEntry.student;
stream HallToClassroom_Teacher
flow HallToClassroom_Teacher
from h.hallExit_to_Classroom.teacher
to c.classEntry.teacher;
stream HallToStorageroom_Air
flow HallToStorageroom_Air
from h.hallExit_to_Storageroom.air
to s.storageEntry.air;
stream HallToStorageroom_Furniture
flow HallToStorageroom_Furniture
from h.hallExit_to_Storageroom.furniture
to s.storageEntry.furniture;
}
Expand Down
8 changes: 4 additions & 4 deletions sysml/src/examples/Simple Tests/PartTest.sysml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ package PartTest {
part f: A;

public part def A {
part id '1' b: B;
part <'1'> b: B;
protected port c: C;
attribute x[0..2];
attribute y :> x;
readonly attribute x[0..2];
derived ref attribute y :> x;
}

abstract part def id xx B {
abstract part def <xx> B {
public abstract part a: A;
port x: ~C;
package P { }
Expand Down
2 changes: 1 addition & 1 deletion sysml/src/examples/Simple Tests/RequirementTest.sysml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ package RequirementTest {
require c;
doc /* */
requirement;
requirement def id '1' A {
requirement def <'1'> A {
doc /* Text */
subject s;
}
Expand Down
2 changes: 1 addition & 1 deletion sysml/src/examples/Simple Tests/UseCaseTest.sysml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ package UseCaseTest {
use case u : UseSystem;

part system : System {
include u;
include uc2;
perform u;
}

Expand Down
Loading

0 comments on commit b10ea68

Please sign in to comment.