Issues for Mailing list of the Spacecraft Operations Language Metamodel 1.0 Finalization Task Force
To comment on any of these issues, send email to solm-ftf@omg.org. (Please include the issue number in the Subject: header, thusly: [Issue ###].) To submit a new issue, send email to issues@omg.org.
List of issues (green=resolved, yellow=pending Board vote, red=unresolved)
Issue 16259: This is not focused on Spacecrafts but on Earth Satellites
Issue 17100: 'UML' Code product type
Issue 17101: SpecificTime.dayOfYear() returns a void - change to Integer per the other methods
Issue 17102: The classifier - Time - for WaitOnExpression.timeout and WaitOnTime.time were not set correctly
Issue 17103: Procedure.duration is typed by an unknown tyoe - RelativeTime. Reset this type to TimeInterval
Issue 17104: Model should be exported in latest available XMI (2.4.1 is current)
Issue 17105: The SpacePython mapping is too vague to insure compatible implementations
Issue 16259: This is not focused on Spacecrafts but on Earth Satellites (solm-ftf)
Click here for this issue's archive.
Source: THALES (Mr. Hugues Vincent, hugues.vincent(at)thalesgroup.com)
Nature: Clarification
Severity: Significant
Summary:
The title of the spec as well as the introduction of it (section 1.1...) make the reader think that this spec is about all known and future spacecrafts while it's about Earth Satellites as proved by, e.g., the use of UTC time.
The introduciton needs clearly to state this and the name of the spec should be changed - earth Satellite Operations Language Metamodel (eSOLM)? -.
Resolution: Rename Spacecraft Operations Language Metamodel to Satellite Operations
Language Metamodel. Occurrences corrected on Title page, document footer,
and Glossary (p 4).
On page 1 introduction replace first paragraph:
This specification defines a meta-model, Spacecraft Operations Language Meta-model (SOLM), for
representing spacecraft operations procedures. These procedures contain sequences of instructions to
conduct spacecraft operations, typically consisting of spacecraft commands and spacecraft telemetry
comparisons. These procedures may also include the configuration of ground equipment, configuration of
spacecraft test equipment, execution of ground testing, and execution of on-orbit testing. Historically, these
procedures have been captured in flowcharts, text manuals, and a number of different scripting languages
used for ground station automation. A standard meta-model to represent spacecraft operations procedures
will facilitate the transfer of procedures between the spacecraft vendor and the spacecraft operator, as well
as allow for maintenance and transfer of the procedures across different ground systems employed over the
lifetime of the spacecraft.
With:
This specification defines a meta-model, Satellite Operations Language Meta-model (SOLM), for
representing spacecraft operations procedures. These procedures contain sequences of instructions to
conduct spacecraft operations, typically consisting of spacecraft commands and spacecraft telemetry
comparisons. These procedures may also include the configuration of ground equipment, configuration of
spacecraft test equipment, execution of ground testing, and execution of on-orbit testing. Historically, these
procedures have been captured in flowcharts, text manuals, and a number of different scripting languages
used for ground station automation. A standard meta-model to represent spacecraft operations procedures
will facilitate the transfer of procedures between the spacecraft vendor and the spacecraft operator, as well
as allow for maintenance and transfer of the procedures across different ground systems employed over the
lifetime of the spacecraft.
This specification is primarily aimed at providing procedure portability for earth-orbiting satellites. While
deep-space spacecraft use similar operational procedures, they also use extensive on-board procedures and
there are significant considerations in the representation of time that are not incorporated in this metamodel.
Revised Text:
Actions taken:
May 20, 2011: received issue
July 19, 2012: closed issue
Issue 17100: 'UML' Code product type (solm-ftf)
Click here for this issue's archive.
Source: Mobilize Software (Mr. Sam Mancarella, sam(at)mobilizesoftware.com.au)
Nature: Uncategorized Issue
Severity:
Summary: The model makes use of a 'UML' Code product type - if you set the Language for each class to '<none>' you not only get the same PrimitiveTypes, but the XMI exporter will produce the correct hrefs in the XMI to those DataTypes defined in UML
Resolution: This resolution applies to the language selection in the non-normative model as
captured in Enterprise Architect and results in changes to the normative XMI
model when it is exported. The “revised text” below illustrates the impact on the
XMI model, but does not identify every line changed, since the XMI is machine
generated.
Revised Text: There are approximately 60 references to UML data types changed from this
form:
<type xmi:idref="EAUML_String"/>
To this form:
<type xmi:type="uml:PrimitiveType"
href="http://www.omg.org/spec/UML/20110701/UML.xmi#String"/>
Actions taken:
February 8, 2012: received issue
July 19, 2012: closed issue
Issue 17101: SpecificTime.dayOfYear() returns a void - change to Integer per the other methods (solm-ftf)
Click here for this issue's archive.
Source: Mobilize Software (Mr. Sam Mancarella, sam(at)mobilizesoftware.com.au)
Nature: Uncategorized Issue
Severity:
Summary: SpecificTime.dayOfYear() returns a void - change to Integer per the other methods
Resolution: This resolution applies to the non-normative model as captured in Enterprise Architect and results
in changes to the normative XMI model when it is exported. The “revised text” below illustrates
the impact on the XMI model. There is also a change in Figure 11 for the method signature.
Revised Text: Replaces (in the XMI):
<ownedOperation xmi:id="EAID_F44D6E13_72DA_4f9b_AFE5_FAFBC6231603"
name="dayOfYear" visibility="public" concurrency="sequential">
<ownedParameter xmi:id="EAID_RT000000_72DA_4f9b_AFE5_FAFBC6231603"
name="return" type="EAUML_void" direction="return"/>
</ownedOperation>
With:
<ownedOperation xmi:id="EAID_F44D6E13_72DA_4f9b_AFE5_FAFBC6231603"
name="dayOfYear" visibility="public" concurrency="sequential">
<ownedParameter xmi:id="EAID_RT000000_72DA_4f9b_AFE5_FAFBC6231603"
name="return" direction="return">
<type xmi:type="uml:PrimitiveType"
href="http://www.omg.org/spec/UML/20110701/UML.xmi#Integer"/>
</ownedParameter>
</ownedOperation>
Replace Figure 11 in the specification with: --> see page 10 of dtc/2012-03-17
Actions taken:
February 8, 2012: received issue
July 19, 2012: closed issue
Issue 17102: The classifier - Time - for WaitOnExpression.timeout and WaitOnTime.time were not set correctly (solm-ftf)
Click here for this issue's archive.
Source: Mobilize Software (Mr. Sam Mancarella, sam(at)mobilizesoftware.com.au)
Nature: Uncategorized Issue
Severity:
Summary: The classifier - Time - for WaitOnExpression.timeout and WaitOnTime.time were not set correctly (usually if the classifier is typed into the field)..
Resolution: This resolution applies to the non-normative model as captured in Enterprise Architect and results
in changes to the normative XMI model when it is exported. The “revised text” below shows the
impact on the XMI model. Figures 5 and 6 are generated from the non-normative model and
required updating for consistent use of the TimeInterval and SpecificTime classifiers. A document
search also found that section 6 contained two references to an older non-existent classifier
name (RelativeTime) instead of the TimeInterval classifier in the normative metamodel.
Revised Text: Replaces (in the XMI for WaitOnExpression):
<ownedAttribute xmi:type="uml:Property"
xmi:id="EAID_9602BC34_CB05_46e4_BB62_A181183C6004" name="timeout"
visibility="public" isStatic="false" isReadOnly="false" isDerived="false"
isOrdered="false" isUnique="true" isDerivedUnion="false">
<type xmi:idref="EAUML_Time"/>
<lowerValue xmi:type="uml:LiteralInteger"
xmi:id="EAID_LI000109_CB05_46e4_BB62_A181183C6004" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural"
xmi:id="EAID_LI000110_CB05_46e4_BB62_A181183C6004" value="1"/>
</ownedAttribute>
And (in the XMI for WaitOnTime):
<ownedAttribute xmi:type="uml:Property"
xmi:id="EAID_1BBA5230_71D5_4d46_A70A_59F3D87F0ABF" name="time"
visibility="public" isStatic="false" isReadOnly="false" isDerived="false"
isOrdered="false" isUnique="true" isDerivedUnion="false">
<type xmi:idref="EAUML_Time"/>
<lowerValue xmi:type="uml:LiteralInteger"
xmi:id="EAID_LI000113_71D5_4d46_A70A_59F3D87F0ABF" value="1"/>
Document dtc/2012-03-17 Page 11
SOLM 1.0 FTF
<upperValue xmi:type="uml:LiteralUnlimitedNatural"
xmi:id="EAID_LI000114_71D5_4d46_A70A_59F3D87F0ABF" value="1"/>
</ownedAttribute>
With:
<ownedAttribute xmi:type="uml:Property"
xmi:id="EAID_9602BC34_CB05_46e4_BB62_A181183C6004" name="timeout"
visibility="public" isStatic="false" isReadOnly="false" isDerived="false"
isOrdered="false" isUnique="true" isDerivedUnion="false">
<type xmi:idref="EAID_E5A7B0E1_7F53_44e4_A077_EDF88A6F9002"/>
<lowerValue xmi:type="uml:LiteralInteger"
xmi:id="EAID_LI000109_CB05_46e4_BB62_A181183C6004" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural"
xmi:id="EAID_LI000110_CB05_46e4_BB62_A181183C6004" value="1"/>
</ownedAttribute>
And:
<ownedAttribute xmi:type="uml:Property"
xmi:id="EAID_1BBA5230_71D5_4d46_A70A_59F3D87F0ABF" name="time"
visibility="public" isStatic="false" isReadOnly="false" isDerived="false"
isOrdered="false" isUnique="true" isDerivedUnion="false">
<type xmi:idref="EAID_E5A7B0E1_7F53_44e4_A077_EDF88A6F9002"/>
<lowerValue xmi:type="uml:LiteralInteger"
xmi:id="EAID_LI000113_71D5_4d46_A70A_59F3D87F0ABF" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural"
xmi:id="EAID_LI000114_71D5_4d46_A70A_59F3D87F0ABF" value="1"/>
</ownedAttribute>
In the specification replace figure 5 with: see pages 13 and 14 of dtc/2012-03-17
Actions taken:
February 8, 2012: received issue
July 19, 2012: closed issue
Issue 17103: Procedure.duration is typed by an unknown tyoe - RelativeTime. Reset this type to TimeInterval (solm-ftf)
Click here for this issue's archive.
Source: Mobilize Software (Mr. Sam Mancarella, sam(at)mobilizesoftware.com.au)
Nature: Uncategorized Issue
Severity:
Summary: Procedure.duration is typed by an unknown tyoe - RelativeTime. Reset this type to TimeInterval
Resolution: This resolution applies to the non-normative model as captured in Enterprise Architect and results
in changes to the normative XMI model when it is exported. The “revised text” below shows the
impact on the XMI model.
Revised Text: Replaces (in the XMI for Procedure):
<ownedAttribute xmi:type="uml:Property"
xmi:id="EAID_6E5E0C6E_99AD_41df_9D12_C6C6FFE03B6B" name="duration"
visibility="public" isStatic="false" isReadOnly="false" isDerived="false"
isOrdered="false" isUnique="true" isDerivedUnion="false">
<type xmi:idref="EAUML_RelativeTime"/>
<lowerValue xmi:type="uml:LiteralInteger"
xmi:id="EAID_LI000221_99AD_41df_9D12_C6C6FFE03B6B" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural"
xmi:id="EAID_LI000222_99AD_41df_9D12_C6C6FFE03B6B" value="1"/>
</ownedAttribute>
With:
<ownedAttribute xmi:type="uml:Property"
xmi:id="EAID_6E5E0C6E_99AD_41df_9D12_C6C6FFE03B6B" name="duration"
visibility="public" isStatic="false" isReadOnly="false" isDerived="false"
isOrdered="false" isUnique="true" isDerivedUnion="false">
<type xmi:idref="EAID_84BA7801_B95B_4b3c_A052_72562441A6C5"/>
<lowerValue xmi:type="uml:LiteralInteger"
xmi:id="EAID_LI000221_99AD_41df_9D12_C6C6FFE03B6B" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural"
xmi:id="EAID_LI000222_99AD_41df_9D12_C6C6FFE03B6B" value="1"/>
</ownedAttribute>
Actions taken:
February 8, 2012: received issue
July 19, 2012: closed issue
Issue 17104: Model should be exported in latest available XMI (2.4.1 is current) (solm-ftf)
Click here for this issue's archive.
Source: Harris (Mr. Brad Kizzort, bkizzort(at)harris.com)
Nature: Uncategorized Issue
Severity:
Summary: Model should be exported in latest available XMI (2.4.1 is current)
Resolution: The original XMI file in the specification was exported in XMI 1.4 from the model in Enterprise
Architect. This file is replaced with a current export after all other modeling changes have been
applied.
Revised Text:
Actions taken:
February 8, 2012: received issue
July 19, 2012: closed issue
Issue 17105: The SpacePython mapping is too vague to insure compatible implementations (solm-ftf)
Click here for this issue's archive.
Source: Harris (Mr. Brad Kizzort, bkizzort(at)harris.com)
Nature: Uncategorized Issue
Severity:
Summary: The SpacePython mapping is too vague to insure compatible implementations, and the example python script in the document will not cut-and-paste as a valid script. Please provide all example scripts as machine-consumable files and expand the SpacePython example to cover all of the SOLM features or add additional examples to cover the features
Resolution: Added two additional SpacePython script examples to cover the Python extensions required by
SOLM. Created an installable Python package that contains the script examples and enough
skeleton implementation to run the scripts on any Python-compatible platform. Also created a
package with the equivalent CCL scripts in machine-consumable form. Regress the Python
version compatibility requirement to 2.6 to allow working with current enterprise Linux releases.
Revised Text: Before Table-1 on p 51, insert the following paragraph to reference the machineconsumables
package:
Three example OS/COMET CCL procedures are provided with the specification in a
machine-consumable format, to avoid problems with cut-and-paste from formatted
text. The following mapping table describes how SOLM features are mapped to
CCL. The transformation between CCL and SOLM is non-normative, in that there
may be multiple valid mappings, and there are some SOLM constructs, such as
multi-threading, that must be mapped to multiple procedures with coordination
through shared memory.
Delete the text “A SpacePython representation of the procedure shown in Figure
4 on page 6 is provided below”, at the end of paragraph 8.1 on p 55 and delete
the following script example between paragraph 8.1 and the table.
Before the SpacePython Table on p 55, insert the following paragraph to
reference the machine-consumables package:
Because either direct execution or translation of a SpacePython procedure is
an acceptable conformance to SOLM, additional machine-consumable SpacePython
Document dtc/2012-03-17 Page 18
SOLM 1.0 FTF
script examples are provided with the SOLM specification, including the
SetMomentumWheelSpeed example from Figure 4. All of the examples are provided
in the form of Python package that can be added to any Python 2.6
installation. The example module will run all of the example scripts,
demonstrating a compliant SpacePython interface. A SOLM-compliant ground
system would use its own database and control mechanisms to run the same
SpacePython scripts rather than modules provided in the demonstration space
package.
Append to the end of Table-1 on p 52 the following additional entry:
WAIT <Time>,
<Expression>,
[TIMEOUT_ERROR],
[Statement]
WaitOnTime
WaitOnExpression
Wait for a time interval in
seconds, optionally wait for
an expression to become
true, optionally generate a
timeout error or a CCL
statement to execute when a
timeout occurs.
Append to the end of Table on p 53 the following additional entries:
WaitOnExpression WAIT <Timeout>,
<Expression>,
[TIMEOUT_ERROR]
CCL allows waiting for an
expression to become true.
WaitOnTime WAIT<Timeout> CCL only allows waiting on
a time interval of 0-86400
seconds.
Append to the end of the tableable on p 58 the following additional entries:
wait(seconds) WaitOnTime Wait for a time interval in
seconds.
waitUntil(<SpecificTime>) WaitOnTime Wait for a specific
date/time.
waitFor(<expression>,<time
out>,<Polling period>)
WaitOnExpression Wait for an expression to
become true or a timeout
occurs.
Append to the end of Table on p 59 the following additional entries:
WaitOnTime wait(<seconds>)
waitUntil(<SpecificTime)
SpacePython allows waiting
for a specific time of day or
for a time interval. The time
interval may include
fractional seconds.
WaitOnExpression waitFor(<Expression>,
<Timeout>, <Polling
SpacePython allows waiting
for an expression to become
Document dtc/2012-03-17 Page 19
SOLM 1.0 FTF
Period>) true or timeout period to
elapse.
Change the Python version reference from 2.7 to 2.6 in the following
page,paragraph statements: p 20, Constraints; p 35, Operations; p 45,
Constraints; p 55, 8.1 General; p 55, While table entry; p 56, If table entry;
Actions taken:
February 8, 2012: received issue
July 19, 2012: closed issue