[Ccsds-omg-liaison] AB review of the SOLM Revised submission
(space/2011-02-01 to 04)
hugues.vincent
hugues.vincent at thalesgroup.com
Mon Mar 14 11:15:42 EST 2011
Dear Brad and Space DTF members,
Here are my first comments as AB reviewer of the Specification for the Spacecraft Operations Language Metamodel" revised submission (space/2011-02-01 to 04).
This version of the submission is a real improvment wrt to the previous version. A proof of this quality is the interest of non-involved people such as JPL's Nicolas Rouquette (whose mail contains interesting comments, btw). Many thanks for that!
General comments:
- For the sake of readability, the diagrams should be moved to the beginning of each section 6.x or, better, with each class.
- The table of content need to go to the third level of title
- A Big Picture of the important classes and their relationships needs to be given in order to ease the reading.
- I'm a bit annoyed with the phrase "with the assistance of Aerospace Corporation" because Aerospace Corporation is not a member of the OMG. We'll need to sort this out during the AB meeting.
- The execution model (ie fUML vs BPMN, see Nicolas's mail) will need to be discussed during the AB meeting as well.
Localized comments:
- Section 1: nice introduction which allow to understand well the issues at stake. Perhaps, it could be useful to specify that this spec is about earth satellite.
- Section 2 and 5 are the only place "SOLM Executive" is used instead of "SOLM execution environment" (AFAIK, please check this): choose one and be consistent all over the document.
- Section 6.1: "For that reason ... Figure 8": I believe that this is not on Figure 8.
- Figure 5: I didn't encounter the definitions of HeaderComment and InlineComment.
- Section 6.1.2 "It is defined in the modelling environment": and in the execution environment.
- Section 6.1.3.2: "A negative time value can be used" -> must
- Section 6.2.3: the introduction speaks about AbsoluteTime and not about ActivityEdge, that really needs some explanation.
- Section 6.2.4.5: "Parallel flows should use a JoinNode or ...": what happen, if not? Even if it lead to an unspecified behaviour, this needs to be said.
- Section 6.2.7.5: the introduction is hard to understand. For instance, which node is it about: everything but DecisionNode, MergeNode, ForkNode and JoinNode? But it just remains FinalNode and InitialNode!
- Section 6.2.9.5: "multiple guards should be exclusive": what if not? this needs to be said (even if unspecified behaviour).
- Section 6.2.11.2: which version of python? Reference?
- Section 6.2.12: what is "FinalNode" for?
- Section 6.2.13.5: what if there is no matching "Join"? This needs to be specified.
- Section 6.2.14.5: the way this exception handling system work with the multi-thread system needs to be specified.
- Section 6.2.15.5: "should" -> must
- Section 6.2.17: "a MergeNode allows a thread..." is confusing. I propose: "a MergeNode allows a path of execution...".
- Section 6.2.18.3: the content seems to be useless.
- Figure 8: "guard" needs to have a constrain saying that the value must be a boolean expression.
- Figure 9: I believe that several constrains need to be put on "containedNode" and 'handler" from HandledExceptionRegion to deal with specific cases such as: the inclusion of one region in another (is allowed?), or the interleaving of two regions, or the presence of a fork in a Region and so forth
- Figure 10: I didn't see the definition of ProcedureArgument.
- Figure 10: Add the association between Device and ProcedureEnvironment
- Section 6.3.3.5: "may" -> "must" (two times)
- Section 6.3.4: "may" -> "must"?
- Section 6.3.4: "Some GemsParameters may be variable, in which case...": what happens if it is not writable?
- Section 6.3.5: "may" -> "must"?
- Section 6.3.5: "Some GroundParameters may be variable, in which case...": what happens if it is not writable?
- Section 6.3.8.3: "If the Parameter has never ... have not InstantValue": what happens in that case? an exception?
- Section 6.4.1: "by an XTCE document or another source": I didn't see the case "another source" modelled: where is it?
- Section 6.4.3.2: the 6 "should" need to be replaced by "must", don't they?
- Section 6.4.4 must be moved to section 6.1
- Section 6.4.7.5: which "Send action"? This sentence is hard to understand during the first reading: please add a reference and explain.
- Section 6.4.8.5: how is defined the timeout period?
- Figure 12: Please add the classes Value (linked to ParameterWrite) and Directive (linked to Send).
- Section 6.5.1.1: "page" ?
- Section 6.5.1.5: what does mean "Represents a specific point in time" for an Invoke?
- Section 6.5.7.2: which version of python? Reference?
- Section 6.5.8.5: which "expected value" are you speaking of? I'm a bit lost, there...
- Section 6.6 - 6.5.4: remove "that closely ... and nodes" (that was not the question asked by the RFP, actually).
These comments don't preclude any further comments from me or other AB members.
Best regards,
Hugues VINCENT
OMG Architecture Board Member
hugues_vincent (at) omg.org
More information about the Ccsds-omg-liaison
mailing list