Action Language for Foundational UML Avatar
  1. OMG Specification

Action Language for Foundational UML — All Issues

  • Acronym: ALF
  • Issues Count: 91
  • Description: All Issues
Open Closed All
All Issues

Issues Summary

Key Issue Reported Fixed Disposition Status
ALF11-22 Sequence feature invocation expressions ALF 1.0b2 ALF 1.1 Resolved closed
ALF11-4 Allow Expressions to Just Conform to Primitive Types ALF 1.0b2 ALF 1.1 Resolved closed
ALF11-23 Primitive type casts ALF 1.0b2 ALF 1.1 Resolved closed
ALF11-12 ActivityDefinition and OperationDefinition Bodies ALF 1.0b2 ALF 1.1 Resolved closed
ALF11-11 NamespaceDefinition::member type ALF 1.0b2 ALF 1.1 Resolved closed
ALF11-10 NonFinalClause and SwitchClause Should Have Derived assignmentBefore and assignmentAfter ALF 1.0b2 ALF 1.1 Resolved closed
ALF11-9 Empty Type Names for Initialization Sequence and Construction Expressions ALF 1.0b2 ALF 1.1 Resolved closed
ALF11-2 Definition of “Collection Class” ALF 1.0b2 ALF 1.1 Resolved closed
ALF11-7 NameExpression::assignment Derivation for a Parameter Name ALF 1.0b2 ALF 1.1 Resolved closed
ALF11-8 ConcurrentClauses Should Have a Derived assignmentBefore ALF 1.0b2 ALF 1.1 Resolved closed
ALF11-6 Derivation of the Type of a ConditionalTestExpression ALF 1.0b2 ALF 1.1 Closed; No Change closed
ALF11-5 BehaviorInvocationExpression Should Have a Derived Implicit Binding ALF 1.0b2 ALF 1.1 Resolved closed
ALF11-3 Some Derived Associations Should Be Composite ALF 1.0b2 ALF 1.1 Resolved closed
ALF_-76 Assignment of out parameters in if and switch statements ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-77 Classifier behavior required for an active class ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-75 Derivation of SequenceOperationExpression::isCollectionConversion ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-78 Inherited abstract operations ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-74 Assigned name must not be template binding ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-73 InstanceCreationExpression class must not be abstract ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-71 Referent of a signal send ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-72 Indexed feature left hand sides ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-69 Error in AssignmentExpression constraints ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-68 AssignmentExpression as a data value update ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-67 Inconsistency on being constructorless ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-70 Constructor in a BehaviorInvocationExpression ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-64 SequenceExpressionList::element should be ordered ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-66 @determined should be @determinate ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-63 Error in Data Value Creation Expression ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-65 Error in bit string conversion ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-62 Errors in Subclause 8.2 ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-61 Errors in the Collection Classes Implemenation ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-60 Errors in the Property Management Service Example ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-59 Errors in the Online Bookstore Example ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-58 Errors in QuickSort Example ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-57 Errors in Constraint Names ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-56 Description of SignalDefinition::isSameKindAs ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-55 Assignments Before a Property Initializer ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-54 Constructor Return Type ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-53 Description of operationDefinitionRedefinition ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-52 NamespaceDefinition::ownedMember Should Be Ordered ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-51 Errors in ImportedMember ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-50 ElementImportReference Constraint ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-48 SwitchClause Should Have a switchClauseCase Constraint ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-49 Errors in Descriptions of SwitchStatement constraints ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-47 Derivation of LocalNameDeclaration::type ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-46 localNameDeclarationStatementAssignmentsAfter constraint ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-45 ForStatement Should Have a Composition Association to Block ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-44 Block Assignment Constraints ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-43 Correction to superInvocationExpressionTarget Constraint ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-42 Correction to shiftExpressionOperands Constraint ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-41 SequenceOperationExpression Constraints ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-40 SequenceOperationExpression Should Override parameterElements ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-39 SequenceConstructionExpression Needs to Override updateAssignments ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-38 SequenceConstructionExpression Constraints ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-37 SequenceConstructionExpression::typeName May Be Empty ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-36 Error in qualifiedNameDisambiguationDerivation ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-33 PositionalTuple Needs a Constraint ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-35 QualifiedName::templateName Needs a Description ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-34 Error in propertyAccessExpressionLowerDerivation ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-31 NameExpression Should Override updateAssignments ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-32 Problems with NameLeftHandSide Constraints ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-29 Problem with the NamedExpression Conversion Constraints ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-30 NamedTuple Needs a Constraint ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-28 Errors in LogicalExpression Constraints ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-27 literalExpressionTypeDerivation Is Not Necessary ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-25 Derivations of type, lower and upper for Invocation Expressions ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-24 Constraint Needed on FeatureLeftHandSide ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-26 Corrections to InvocationExpression::parameterElements ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-23 Corrections to updateAssignments for ConditionalTestExpression ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-22 Require Non-Template Classifier ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-21 Derived Attributes for LeftHandSide ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-20 binaryExpressionOperandMultiplicity Constraint is Too Strong for EqualityExpression ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-19 Errors in BehaviorInvocationExpression Constraints ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-18 Type Conformance for Compound Assignments for Bit Strings ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-15 IndexOf Return Type ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-17 Errors in Abstract Syntax Attribute Names ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-14 Synthesis of the Name of a Reception Definition ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-16 Errors in Collection Function Table ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-13 Constructors and Diamond Inheritance ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-12 Error in ProcessQueue Example ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-11 Error in Singleton Examples ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-9 Return Statements with no Expression ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-10 Implicit Imports ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-8 Evaluation of Loop Variable Definitions ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-4 Boolean Literals Cannot Be Used as Identifiers ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-7 Missing Cross Reference in Subclause 9.6 ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-6 Parenthesizing Left Hand Sides ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-5 Error in Synthesis of Null Expressions ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-3 Null Template Binding Arguments ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-2 Correction to Section 8.3.6, Property Access Expressions ALF 1.0b2 ALF 1.0 Resolved closed
ALF_-1 StructuredMember should be renamed to StructuredElement ALF 1.0b2 ALF 1.0 Resolved closed

Issues Descriptions

Sequence feature invocation expressions

  • Key: ALF11-22
  • Legacy Issue Number: 17509
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subject: Sequence feature invocation expressions

    Subclauses: 8.3.10 Feature Invocation Expression, 13.2.17 FeatureInvocationExpression

    · A feature invocation expression with a primary whose multiplicity is 0..1 should not be considered a sequence feature expression, since the optionality is handled without the need for an expansion region.

    · Subclause 8.3.10 states that a sequence feature invocation expression is equivalent to a sequence expansion (collect) expression for the invocation. However, local names may not be assigned within the argument expression of a sequence expansion expression (because a sequence expansion expression maps to an expansion region, and fUML does not allow flows out of such regions other than through output expansion nodes). For a sequence feature invocation expression, the invocation tuple is repeatedly re-evaluated inside the argument expression of the equivalent sequence expansion expression. Therefore, local variable assignments should not be allowed within the expressions in the tuple of a feature invocation expression.

    These changes should also be accounted for in the constraints in Subclause 13.2.17.

  • Reported: ALF 1.0b2 — Thu, 19 Jul 2012 04:00 GMT
  • Disposition: Resolved — ALF 1.1
  • Disposition Summary:

    Add constraint for sequence feature invocations

    It is NOT agreed that "As feature invocation expression with a primary whose multiplicity is 0..1 should not be considered a sequence feature expression". The semantics for a feature invocation with a primary of multiplicity 0..1 should at least be consistent with the case of the limiting case of invocation of a sequence of multiplicity 0..1. But this requires, in the case that the actual cardinality is 0, that not only does the call not take place, but any tuple expressions are also not evaluated. Further, the expression should have an actual "null" result, not just "no execute" (as would be the case of a call operation or send signal action without an object input value). The simplest way to ensure such consistent semantics are to treat the case of mulitplicity 0..1 as a sequence feature invocation.

    However, it IS agreed that, in the case of a sequence feature invocation, assignments should not be allowed in tuple expressions.

  • Updated: Thu, 22 Jun 2017 16:40 GMT

Allow Expressions to Just Conform to Primitive Types

  • Key: ALF11-4
  • Legacy Issue Number: 16430
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Clause: 13 Expression Abstract Syntax

    In general, constraints for expressions to be of a certain standard primitive type should, instead, allow them to be of a type that conforms to the required type. This allows for user-defined primitive types that are subtypes of the standard types

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.1
  • Disposition Summary:

    Loosen certain constraints requiring standard primitive types

    Agreed.

  • Updated: Thu, 22 Jun 2017 16:40 GMT

Primitive type casts

  • Key: ALF11-23
  • Legacy Issue Number: 17512
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subject: Primitive type casts

    Subclauses: 8.5.5 CastExpressions

    Cast expressions should allow casting between Integer and UnlimitedNatural and between Integer and BitString, performing appropriate conversions

  • Reported: ALF 1.0b2 — Thu, 19 Jul 2012 04:00 GMT
  • Disposition: Resolved — ALF 1.1
  • Disposition Summary:

    Add cast functionality for Integer, Real, UnlimitedNatural and BitString

    Agreed. (Note that this resolution presumes the resolution to Issue ALF11-29, Alf should support Real.)

  • Updated: Thu, 22 Jun 2017 16:40 GMT

ActivityDefinition and OperationDefinition Bodies

  • Key: ALF11-12
  • Legacy Issue Number: 16475
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclauses: 15.2.2 ActivityDefinition and 15.2.16 OperationDefinition

    OperationDefinition and ActivityDefinition should have derived attributes for their actual body that gets the subunit body if they are stubs (in all other cases, resolving subunits can be handled via the derivation of the members for the stub). They should also have constraints that there are no assignments before the actual body.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.1
  • Disposition Summary:

    Add effectiveBody derived properties

    Agreed.

  • Updated: Thu, 22 Jun 2017 16:40 GMT

NamespaceDefinition::member type

  • Key: ALF11-11
  • Legacy Issue Number: 16471
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 15.2.15 NamespaceDefinition

    It would be better if NamespaceDefinition::member had type ElementReference instead of Member, to account for members inherited from non-Alf UML elements.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.1
  • Disposition Summary:

    Use the existing ImportedMember instead

    It is agreed that there is an issue in that members inherited from external classifiers are not currently addressed explicitly. While changing the type of NamespaceDefinition to ElementReference might be a consistent way to use the general element referencing mechanism to do that, it represents a substantial change to the abstract syntax model. It would also require updating how imported members are handled and introducing a mechanism for consistently accessing member properties through general element references.

    An alternative is to simply use the existing ImportedMember class also for referencing external members that are inherited (i.e., they are first "implicitly imported"). This may be less elegant as an overall design, but it requires no change to the abstract syntax model and is thus a much smaller change while still solving the problem. It would also automatically handle checks for distinguishability with inherited members, since such checks are already covered for imported members.

  • Updated: Thu, 22 Jun 2017 16:40 GMT

NonFinalClause and SwitchClause Should Have Derived assignmentBefore and assignmentAfter

  • Key: ALF11-10
  • Legacy Issue Number: 16466
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclauses: 14.2.17 NonFinalClause and 14.2.21 SwitchClause

    NonFinalClause should have derived assignmentBefore and assignmentAfter associations, since these are mentioned in the description of the nonFinalClauseAssignmentsBefore and nonFinalClauseAssignmentsAfter constraints, respectively. Similarly for SwitchClause.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.1
  • Disposition Summary:

    Make minor constraint updates

    The referenced constraints "nonFinalClauseAssignmentsAfter" and "nonFinalClauseAssignmentsBefore" don't actually exist. Instead, NonFinalClause has helper operations that given the assignmentsAfter and assignmentsBefore such a clause. SwitchClause has similar operations.

    However, the "assignments before" non-final clauses are referenced in the concurrentClausesAssignmentsBefore constraint in a way that makes them seem to be a property that can be set. However, this can be easily fixed by simply changing the wording in this clause to refer to the "assignments before the condition of each of the clauses", rather than before the clauses themselves. Similarly, the wording of the switchStatementAssignmentsBefore can be changed to reference the "assignments before the case expressions of all clauses".

  • Updated: Thu, 22 Jun 2017 16:40 GMT

Empty Type Names for Initialization Sequence and Construction Expressions

  • Key: ALF11-9
  • Legacy Issue Number: 16465
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclauses: 14.2.15 LocalNameDeclarationStatement and 15.2.19 PropertyDefinition

    In order to handle instance and sequence initialization expressions (per Subclauses 9.6 and 10.5.2), constraints for LocalNameDeclarationStatement and PropertyDefinition should allow for instance construction and sequence construction expressions with empty type names (which means the constructor name for an instance construction expression must also be optional).

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.1
  • Disposition Summary:

    Allow for instance construction and sequence construction expressions with empty constructor/type names

    Agreed.

  • Updated: Thu, 22 Jun 2017 16:40 GMT

Definition of “Collection Class”

  • Key: ALF11-2
  • Legacy Issue Number: 16427
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 11.6 Collection Classes

    The rule for collection class in Section 11.6 would allow a class that multiply inherited from collection class instantiations, resulting in ambiguity of the call to toSequence. Perhaps the simplest rule would be to just consider as a “collection class” any class with a toSequence operation and an appropriate constructor.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.1
  • Disposition Summary:

    Loosen definition of "collection class".

    Agreed. (Note that, in the Alf 1.0.1 formal specification, "Collection Classes" is subclause 11.7, not 11.6.)

  • Updated: Thu, 22 Jun 2017 16:40 GMT

NameExpression::assignment Derivation for a Parameter Name

  • Key: ALF11-7
  • Legacy Issue Number: 16446
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.34 NameExpression

    For a parameter name, nameExpressionAssignmentDerivation should only give the assignment as the assignment before the expression if there is one. Otherwise, it should create an effective assignment with the formal parameter as its source element, unless the parameter is an out parameter. If the parameter is a non-Alf element, then this will need to be wrapped in a new ExternalParameter syntax element.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.1
  • Disposition Summary:

    Allow an assigned source to be an external reference

    Agreed in principle. However, rather than introduce a new ExternalParameter class, a better solution would seem to be to make the source of an AssignedSource an ElementReference, rather than a SyntaxElement. This would reuse the general mechanism to allow a reference to be to either an internal or external element.

  • Updated: Thu, 22 Jun 2017 16:40 GMT

ConcurrentClauses Should Have a Derived assignmentBefore

  • Key: ALF11-8
  • Legacy Issue Number: 16461
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 14.2.8 ConcurrentClauses

    ConcurrentClauses should have a derived assignmentBefore association, since this is mentioned in the description of the concurrentClausesAssignmentsBefore condition.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.1
  • Disposition Summary:

    Add assignmentBefore association to ConcurrentClauses

    Agreed.

  • Updated: Thu, 22 Jun 2017 16:40 GMT

Derivation of the Type of a ConditionalTestExpression

  • Key: ALF11-6
  • Legacy Issue Number: 16438
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.13 ConditionalTestExpression

    The derivation for the type of a ConditionalTestExpression should account for the case in which one of the result operands is empty, in which case the type of the conditional test expression should be the type of the other expression

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Closed; No Change — ALF 1.1
  • Disposition Summary:

    Not necessary

    All the synthesized properties for the operands of a conditional test expression have multiplicity 1..1, so a conditional test expression with an "empty result operand" is already syntactically ill-formed. An implementation may wish to provide a type for the expression that allows for further processing even in such a case, but there is no need for the specification to provide a formal type derivation for it.

  • Updated: Thu, 22 Jun 2017 16:40 GMT

BehaviorInvocationExpression Should Have a Derived Implicit Binding

  • Key: ALF11-5
  • Legacy Issue Number: 16433
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.3 BehaviorInvocationExpression

    BehaviorInvocationExpression should have a derived attribute that is the implicit binding when the referent behavior is a template whose argument types can be inferred for the invocation. There should also be a constraint on when this is allowed

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.1
  • Disposition Summary:

    Add derived InvocationExpression::boundReferent property

    Agreed in principle. However, implicit template binding may occur for sequence operation expressions, as well as behavior invocation expressions. Therefore, the derived property should be on InvocationExpression, the common superclass of BehaviorInvocationExpression and SequenceOperationExpression.

  • Updated: Thu, 22 Jun 2017 16:40 GMT

Some Derived Associations Should Be Composite

  • Key: ALF11-3
  • Legacy Issue Number: 16428
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Clauses: All of Part III on Abstract Syntax

    Derived associations whose derivations create new syntax elements, rather than referring to existing elements in the abstract syntax tree (e.g., ExtentOrExpression::expression) should be composition associations. This makes the ownership of these derived elements clear for the purpose of walking the abstract syntax tree to check static semantic constraints.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.1
  • Disposition Summary:

    Make certain derived properties composite

    Generally agreed, though the specific example given (ExtentOrExpression::expression) is already composite in the Alf 1.0.1 abstract syntax.

  • Updated: Thu, 22 Jun 2017 16:40 GMT

Assignment of out parameters in if and switch statements

  • Key: ALF_-76
  • Legacy Issue Number: 17524
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subject: Assignment of out parameters in if and switch statements

    Subclauses: 14.2.13 ifStatement, 14.2.20 SwitchStatement

    According to Subclauses 9.8 and 9.9, it is not permitted to define a new local name in an if statement without an else clause or a switch statement without a default clause. The ifStatementAssignmentsAfter and switchStatementAssignments constraints in Subclauses 14.2.13 and 14.2.22 attempt to enforce this by requiring that the assignments after such if or switch statements be the same as those before the statement. However, this constraint is too strong. An out parameter does not have an assign source before it is first assignment, yet it is already defined as a local name. Therefore, the constraints should be loosened to allow an if statement without an else clause or a switch statement without a default clause to contain the first assignment of an out parameter.

  • Reported: ALF 1.0b2 — Thu, 19 Jul 2012 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:49 GMT

Classifier behavior required for an active class

  • Key: ALF_-77
  • Legacy Issue Number: 17525
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subject: Classifier behavior required for an active class

    Subclause: 15.2.1 ActiveClassDefinition

    A non-abstract active class must have a classifier behavior, because this is required by StartObjectBehaviorAction

  • Reported: ALF 1.0b2 — Thu, 19 Jul 2012 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:49 GMT

Derivation of SequenceOperationExpression::isCollectionConversion

  • Key: ALF_-75
  • Legacy Issue Number: 17523
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subject: Derivation of SequenceOperationExpression::isCollectionConversion

    Subclause: 13.2.50 SequenceOperationExpression

    In Subclause 13.2.50 SequenceOperationExpression, the derivation for isCollectionConversion should include the requirement that the multiplicity is upper bound is 1.

  • Reported: ALF 1.0b2 — Thu, 19 Jul 2012 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:49 GMT

Inherited abstract operations

  • Key: ALF_-78
  • Legacy Issue Number: 17526
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subject: Inherited abstract operations

    Subclauses: 15.2.4 ClassDefinition, 15.2.16 OperationDefinition

    There is currently a constraint for an OperationDefinition that it must owned by a non-abstract class. This isn’t strong enough, because it doesn’t prevent a non-abstract class from inheriting an abstract operation. Instead, there should be a constraint on ClassDefinition that all member operations (owned or inherited) are not abstract.

  • Reported: ALF 1.0b2 — Thu, 19 Jul 2012 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:49 GMT

Assigned name must not be template binding

  • Key: ALF_-74
  • Legacy Issue Number: 17522
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subject: Assigned name must not be template binding

    Subclause: 13.2.35 NameLeftHandSide

    In Subclause 13.2.35 NameLeftHandSide, there needs to be a constraint that the name is not a template binding.

  • Reported: ALF 1.0b2 — Thu, 19 Jul 2012 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:49 GMT

InstanceCreationExpression class must not be abstract

  • Key: ALF_-73
  • Legacy Issue Number: 17521
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subject: InstanceCreationExpression class must not be abstract

    Subclause: 13.2.22 InstranceCreationExpression

    In Subclause 13.2.22 InstanceCreationExpression there should be a constraint that the class of a constructor operation, or the referent if it is a class or data type, must not be abstract. In the case in which this constraint would be violated, but there is an associated Impl class constructor per Subclause 8.3.12, the referent should be the Impl constructor

  • Reported: ALF 1.0b2 — Thu, 19 Jul 2012 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:49 GMT

Referent of a signal send

  • Key: ALF_-71
  • Legacy Issue Number: 17519
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subject: Referent of a signal send

    Subclauses: 13.2.3 BehaviorInvocationExpression, 13.2.17 FeatureInvocationExpression

    The description of the InvocationExpression::referent property in Subclause 13.2.23 is “The behavior, operation or signal being invoked.” The featureInvocationExpressionReferentDerivation in Subclause 13.2.17 derives this property as the referent of the feature of the FeatureInvocationExpression. The behaviorInvocationExpressionReferentDerivation in Subclause 13.2.3 has derives the referent similarly, in the case that the target name of a BehaviorInvocationExpression disambiguates to a feature reference. However, for a signal send, the feature being referenced will actually be a reception for the signal, not the signal itself. The derivations in Subclauses 13.2.3 and 13.2.17 should be revised to account for this.

  • Reported: ALF 1.0b2 — Thu, 19 Jul 2012 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    The constraint behaviorInvocationExpressionReferentDerivation actually already says “if the target disambiguates to a feature reference, the operation or signal being invoked”, which identifies that, for a signal send, the referent is the signal, not the reception. It is featureInvocationExpressionReferentDerivation that needs to be adjusted.

  • Updated: Fri, 6 Mar 2015 21:49 GMT

Indexed feature left hand sides

  • Key: ALF_-72
  • Legacy Issue Number: 17520
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subject: Indexed feature left hand sides

    Subclauses: 13.2.18 FeatureLeftHandSide, 13.2.35 NameLeftHandSide

    In a FeatureLeftHandSide, if the left-hand side has an index, then the referenced feature must be a sequence (simply being ordered is not enough for the “replace” semantics of indexed assignment). Since a similar constraint is required for a NameLeftHandSide with an index, if the name

    disambiguates to a feature, the constraint is probably best handled in a unified way in the LeftHandSide superclass.

  • Reported: ALF 1.0b2 — Thu, 19 Jul 2012 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    To handle this constraint in a unified way in LeftHandSide superclass would probably require adding a derived referent property to be used for it, as well as adding derivations for it in each subclass. It is simpler instead to just add to each subclass the specific constraints necessary to resolve the issue.

  • Updated: Fri, 6 Mar 2015 21:49 GMT

Error in AssignmentExpression constraints

  • Key: ALF_-69
  • Legacy Issue Number: 17517
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subject: Error in AssignmentExpression constraints

    Subclause: 13.2.2 AssignmentExpression

    · In Subclause 13.2.1 AssignmentExpression, the constraint assignmentExpressionSimpleAssignmentTypeConformance should require the type of the right-hand side to conform to the type of the left-hand side, not the other way around.

    · The type and multiplicity bounds of a compound AssignmentExpression should be those of the left-hand side, not the right-hand side.

  • Reported: ALF 1.0b2 — Thu, 19 Jul 2012 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    Agreed on the first bullet (except that the reference to 13.2.1 should be to 13.2.2).
    On the second bullet, the problem is that the current assignmentExpressionCompoundTypeConformance constraint requires that the left-hand side and the right-hand side have the same type. This works for arithmetic or Boolean operations, but it does not necessarily work for bit string operations (which may have an Integer right-hand side) or shift operations (which require and Integer right-hand side). In all cases, however, the type of the compound assignment will be the type of the left-hand side.
    The multiplicity upper bound for a compound assignment is required to always be 1. However, the multiplicity lower bound may be either 0 or 1, as determined by the multiplicity lower bound of the left-hand side.

  • Updated: Fri, 6 Mar 2015 21:49 GMT

AssignmentExpression as a data value update

  • Key: ALF_-68
  • Legacy Issue Number: 17516
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subject: AssignmentExpression as a data value update

    Subclause: 13.2.2 AssignmentExpression,

    · An assignment expression should only be allowed to be a data value update if its left hand side is a feature reference whose primary expression is a local name or parameter name.

    · The derivation of the assignment for an assignment expression needs to account for the cases of a data value update and an indexed left hand side.

  • Reported: ALF 1.0b2 — Thu, 19 Jul 2012 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    The deriviation of isDataValueUpdate is such that it is true only in the case mentioned in the first bullet. However, nothing currently prevents assignment to an attribute of a data type where the primary expression of the feature reference is not a local name or parameter. Such an assignment will not be mapped correctly, because it will not be considered a data value update and, so, the updated data value will be lost. Therefore, this case should be disallowed.
    In the case of a data value update for an indexed left-hand side, the multiplicity of the new assignment should not be that of the left-hand side (which will be 1) but, rather, should be * (since only a sequence can be indexed).

  • Updated: Fri, 6 Mar 2015 21:49 GMT

Inconsistency on being constructorless

  • Key: ALF_-67
  • Legacy Issue Number: 17515
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subject: Inconsistency on being constructorless

    Subclause: 10.5.3.1 Constructors

    In Subclause 10.5.3.1 it says that the mapping of default constructors “means that the instantiation of a class defined using Alf textual notation is never ‘constructorless’ as defined in Subclause 8.3.12”. However, later in the same subclause it says “If a class has an explicit constructor definition, then the default constructor is no longer available, even if the defined constructor has a different name than the default constructor.” But if no default constructor is available, and there is no explicit constructor with the name of the class and no arguments, then a constructorless instantiation is possible.

  • Reported: ALF 1.0b2 — Thu, 19 Jul 2012 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    If a class has one or more explicit constructors, then the intent is that instances of the class be created using one of these constructors. Therefore, constructorless instantiation should not be allowed in this case, even if there is no default constructor.

  • Updated: Fri, 6 Mar 2015 21:49 GMT

Constructor in a BehaviorInvocationExpression

  • Key: ALF_-70
  • Legacy Issue Number: 17518
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subject: Constructor in a BehaviorInvocationExpression

    Subclause: 13.2.3 BehaviorInvocationExpression

    In Subclause 13.2.17, FeatureInvocationExpression contains the constraint featureInvocationExpressionAlternativeConstructor, which constrains the placement of an alternative constructor invocation within the method of a constructor operation. However, the target name of a BehaviorInvocationExpression may also disambiguate to a feature reference to a constructor. If such an invocation is within the method of a constructor operation, then it also needs to be similarly constrained as an alternative constructor invocation (perhaps by moving featureInvocationAlternativeConstructor constraint needs to be moved to the InvocationExpression superclass).

  • Reported: ALF 1.0b2 — Thu, 19 Jul 2012 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    Moving the constraint to the InvocationExpression superclass will not work, because this constraint limits when the referent of a feature invocation is a constructor. However, InstanceCreationExpression is also a subclass of InvocationExpression, and, in this case, the referent actually is supposed to be a constructor.

    Therefore, a similar constraint needs to be added to BehaviorInvocationExpression

  • Updated: Fri, 6 Mar 2015 21:49 GMT

SequenceExpressionList::element should be ordered

  • Key: ALF_-64
  • Legacy Issue Number: 17511
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subject: SequenceExpressionList::element should be ordered

    Subclauses: 8.3.15 Sequence Construction Expressions, 13.1 Overview

    Since a SequenceExpressionList represents an ordered list of expressions, clearly SequenceExpressionList::element should be ordered.

  • Reported: ALF 1.0b2 — Thu, 19 Jul 2012 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:49 GMT

@determined should be @determinate

  • Key: ALF_-66
  • Legacy Issue Number: 17514
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subject: @determined should be @determinate

    Subclauses: 9.8 if Statement, 9.9 switch Statement, 14.2.13 IfStatement, 14.2.22 SwitchStatement

    The @determined annotation on if and switch statements should be @determinate, to correspond to the ConditionalNode attribute isDeterminate.

  • Reported: ALF 1.0b2 — Thu, 19 Jul 2012 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:49 GMT

Error in Data Value Creation Expression

  • Key: ALF_-63
  • Legacy Issue Number: 17510
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subject: Error in Data Value Creation Expression

    Subclause: 8.3.12 Instance Creation Expressions

    In the second paragraph under “Data Value Creation Expression” in Subclause 8.3.12 Instance Creation Expressions, it says “Each argument expression must be to the corresponding attribute…”. This should be “Each argument expression must be assignable to the corresponding attribute…”.

  • Reported: ALF 1.0b2 — Thu, 19 Jul 2012 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:49 GMT

Error in bit string conversion

  • Key: ALF_-65
  • Legacy Issue Number: 17513
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subject: Error in bit string conversion

    Subclause: 8.8 Assignment Expressions

    In Subclause 8.8 Assignment Expressions, under “Assignability”, the function referenced for bit string conversion should be ToBitString, not ToInteger.

  • Reported: ALF 1.0b2 — Thu, 19 Jul 2012 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:49 GMT

Errors in Subclause 8.2

  • Key: ALF_-62
  • Legacy Issue Number: 17508
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subject: Errors in Subclause 8.2

    Subclause: 8.2 Qualified Names

    · In the example at the end of Subclause 8.2 Qualified Names it says “The standard library class Map has two template parameters, K and V.” Actually, the template parameters are “Key” and “Value”.

    · The references to UML specification subclauses in Subclause 8.2 are all off by one (e.g., 7.3.34 instead of 7.3.35 for Namespace) for UML 2.4.

  • Reported: ALF 1.0b2 — Thu, 19 Jul 2012 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    Agreed on the first bullet. On the second bullet, it is actually only references to subclauses with numbers greater than 7.3.28 that are wrong, because the UML 2.4.1 inserted a new Subclause 7.3.29 for LiteralReal.

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Errors in the Collection Classes Implemenation

  • Key: ALF_-61
  • Legacy Issue Number: 16482
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: C.4 Alf Standard Library Collection Classes Implementation

    • All the collection implementation classes have an incorrect namespace declaration containing “Collections::CollectionClasses”, rather than just “CollectionClasses”. They also import “Alf::Library::FunctionBehaviors::Collections::CollectionFunctions” rather than “Alf::Library::CollectionFunctions”.
    • Return types should not be given on constructors.
    • Several classes have destructors that call CollectionImpl<T>::destroy, but CollectionImpl has no such destructor.
    • The classes that have multiple specializations have to redefine indistinguishable operations inherited from both classes.
    • In C.4.2 CollectionImpl,
    o excludesAll and includesAll have seq as their parameter, but incorrectly use the name “element” in their bodies.
    o In the first statement of removeOne, “self” is used instead of “this”.
    o In the last statement of retainAll, there should not be “()” after “preSize”.
    • In C.4.3 OrderedCollectionImpl,
    o In the body of addAt, the call to “addAllAt” should be proceeded by “this.”.
    o In the body of indexOf, the reference to “indexof” should be “indexOf”.
    • In C.4.5 OrderedSet,
    o In the body of equals, “OrdredCollcetionImpl” should be “OrderedCollectionImpl”.
    o In the body of subOrderedSet, the constructor “OrderedSet” should be “OrderedSet<T>”.
    • In C.4.6 Bag, the super constructor call should be to CollectionImpl, not OrderedCollection.
    • In C.4.7 List,
    o CollectionClasses::Impl::List should specialize CollectionClasses::List, not CollectionClasses::OrderedSet.
    o subList should return List<T>, not OrderedSet<T>.
    o In subList, the constructor “List” should be “List<T>”.
    o The parameter for setContent should be a “sequence”.
    • In C.4.8 Queue,
    o Queue should specialize CollectionClasses::Queue, not CollectionClasses::Set.
    o In the body of removeFirst, “toSequence” should be “toSequence()”.
    o removeFirstOne should have a return multiploicity of 1..1.
    o The body of removeFirstOne should return the argument element or null, depending on whether the element was actually found for deletion.
    • In C.4.9 Deque,
    o Deque should specialize CollectionClasses::Deque in addition to Queue.
    o The super constructor call should be super.Queue<T>::Queue, not just super, and the super destructor call should be super.Queue<T>::destroy.
    o The implementation of removeLastOne removes all occurrences of the given element, not just the last one.
    o toSequence cannot return “this.content”, since “content” is private to Queue.
    o The (constructor) operation Queue is inherited from both superclasses and must be redefined.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Errors in the Property Management Service Example

  • Key: ALF_-60
  • Legacy Issue Number: 16481
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: C.3 Property Management Service

    • To be consistent with the implementation of ‘create reply’, the association of Property to Location should be optional.

    • In the ‘create property’ example, the mandatory ‘property type’ needs to be set in the propertyData instance creation expression.

    • In the establish operation, two occurrences of “request.name” should be replaced with “request.’property name’”.

    • In the acquire, update, delete and retrieve operations, the reply and error out parameters need to be set to null values before the if statement and the select expressions should have “[1]” at the end.

    • In the acquire, update and dispose operations, the reference to ‘Property Type’ should be ‘Property Status’ and the assignment in the second if clause should be equality.

    • The update operation needs to import 'Property Management'::'Data Model'::Locations::Location. Also, “request.’property location’” should be “request.’property location identifier’” (three times), “request.’serial number’ “should be “request.’property serial number’” and “request.size” should be “request.’property size’”.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    Agreed, except that:
    • The second bullet should reference the ‘create reply’ activity (which has a propertyData instance creation expression) rather than ‘create property) which does not.
    • In the fifth bullet, the issue with assignment seems to have already been resolved.
    Revised Text:

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Errors in the Online Bookstore Example

  • Key: ALF_-59
  • Legacy Issue Number: 16480
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: C.2 Online Bookstore

    • In the example class Order, the statement “accept (OrderDelivery)” should be “accept (OrderDelivered)”. Also, the nested activities have to be operations, because nested activities don’t have the containing class as their context.

    • In the example activity EstablishCustomer, “TIM::current_date” should be replaced with “TIM::GetCurrentDate()”.

    • The ProcessCharge activity should import Ordering::CreditCardCharge::ChargeData.

    • In the graphical model for the Ordering example, the Customer class is shown as having a purchasesMade attribute that is not set in the EstablishCustomer activity, but that activity instead shows a phone attribute being set that is missing from the class.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Errors in QuickSort Example

  • Key: ALF_-58
  • Legacy Issue Number: 16479
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: C.1 Quicksort Activity

    In the “functional” QuickSort example:
    • x cannot be set only in the else part of an if statement
    • The sequence operation “remove” should be “removeAt”
    • The recursive call to “QuickSort” should be “Quicksort”.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    The first and third bullets are correct. However, the example already uses “removeAt”, not “remove”, so no change is necessary for that.
    Note also that Annex C should really be Annex B (since it is the second annex).

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Errors in Constraint Names

  • Key: ALF_-57
  • Legacy Issue Number: 16478
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclauses: Various subclauses in Part III Abstract Syntax

    The following constraint names should be corrected as shown:
    • expressionAssignmentsAfterDerivation -> expressionAssignmentAfterDerivation
    • bitStringUnaryExpresionIsBitStringConversionDerivation -> bitStringUnaryExpressionIsBitStringConversionDerivation
    • loopVariableIsCollectionConversionDerivation -> loopVariableDefinitionIsCollectionConversionDerivation
    • importedElementNotStub -> importedMemberNotStub
    • importedElementFeatureDerivation -> importedMemberIsFeatureDerivation
    • forAllOrExistOrOneExpressionTypeDerivation -> forAllOrExistsOrOneExpressionTypeDerivation
    • forAllOrExistOrOneExpressionLowerDerivation -> forAllOrExistsOrOneExpressionLowerDerivation
    • forAllOrExistOrOneExpressionUpperDerivation -> forAllOrExistsOrOneExpressionUpperDerivation
    • forAllOrExistOrOneExpressionArgument -> forAllOrExistsOrOneExpressionArgument
    • relationalExpressionIsTypeDerivation -> relationalExpressionTypeDerivation
    • relationalExpressionIsLowerDerivation -> relationalExpressionLowerDerivation
    • relationalExpressionIsUpperDerivation -> relationalExpressionUpperDerivation
    • unboundedLiteralExpressionDerivation -> unboundedLiteralExpressionTypeDerivation
    • namespaceDefinitionMemberDistinguishaibility -> namespaceDefinitionMemberDistinguishability
    • operationDefinitionIsConstructorDefinition -> operationDefinitionIsDestructorDerivation
    • operationDefinitionIsDestructorDefinition -> operationDefinitionIsDestructorDerivation
    • operationDefinitionRedefinedOperationsDerivation -> operationDefinitionRedefinedOperationConstraint
    • propertyDefinitionIsBitStringConversion -> propertyDefinitionIsBitStringConversionDerivation
    • incrementOrDecrementExpressionIsDataValueUpdate -> incrementOrDecrementExpressionIsDataValueUpdateDerivation
    • incrementOrDecrementExpressionFeature -> incrementOrDecrementExpressionFeatureDerivation
    • incrementOrDecrementExpressionAssignment -> incrementOrDecrementExpressionAssignmentDerivation

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Description of SignalDefinition::isSameKindAs

  • Key: ALF_-56
  • Legacy Issue Number: 16477
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 15.2.21 SignalDefinition

    The description of SignalDefinition::isSameKindAs mentions “Reception” where it should say “Signal”.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Assignments Before a Property Initializer

  • Key: ALF_-55
  • Legacy Issue Number: 16476
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 15.2.19 PropertyDefinition

    The propertyDefinitionInitializer constraint should also state that there are no assignments before the initializer expression.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Constructor Return Type

  • Key: ALF_-54
  • Legacy Issue Number: 16474
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 15.2.16 OperationDefinition

    OperationDefinition must take into account that the return type of a constructor is not explicitly declared, but is still included in the operation signature (per Subclause 10.5.3.1).

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    This needs to be accounted for in the definitions of the isSameKindAs and matchForStub helper operations.

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Description of operationDefinitionRedefinition

  • Key: ALF_-53
  • Legacy Issue Number: 16473
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 15.2.16 OperationDefinition

    In the description of OperationDefinition::operationDefinitionRedefinition, “signal referent” should be “single referent”.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

NamespaceDefinition::ownedMember Should Be Ordered

  • Key: ALF_-52
  • Legacy Issue Number: 16472
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 15.2.15 NamespaceDefinition

    NamespaceDefinition::ownedMember association should be ordered. (This is important at least for activity and operation parameters.)

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Errors in ImportedMember

  • Key: ALF_-51
  • Legacy Issue Number: 16470
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 15.2.12 ImportedMember

    • The description of ImportedMember::isSameKind is written in terms of distinguishability rather than same kind.

    • An ImportedMember should not generally be considered a feature, even if it is a feature of the namespace it is imported from, since it is not a feature of the namespace it is imported into.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    • In the case of Alf members, it is appropriate to use the terminology “same kind”. However, in the case of two UML elements, the standard terminology of distinguishability still needs to be used.
    • No change is required for an ImportedMember no be considered a feature. The isFeature property inherited from Member is false by default and the default value is never changed for an ImportedMember.

  • Updated: Fri, 6 Mar 2015 21:48 GMT

ElementImportReference Constraint

  • Key: ALF_-50
  • Legacy Issue Number: 16469
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 15.2.8 ElementImportReference

    ElementImportReference should have a constraint that its referent must be a packageable element.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

SwitchClause Should Have a switchClauseCase Constraint

  • Key: ALF_-48
  • Legacy Issue Number: 16467
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 14.2.21 SwitchClause

    SwitchClause should have a switchClauseCases constraint the states “All the cases expressions of a switch clause must have a multiplicity no greater than 1.”

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Errors in Descriptions of SwitchStatement constraints

  • Key: ALF_-49
  • Legacy Issue Number: 16468
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 14.2.22

    • The description of the switchStatementExpression constraint should be “The expression of a switch statement must have a multiplicity no greater than 1.”

    • The description of the switchStatementEnclosedStatements constraint should be “A switch statement is the enclosing statement for the statements in all of its switch clauses.”

    • The switchStatementAssignmentsBefore constraint should state that the assignments before the clauses of a switch statement are the assignments after the expression of the switch statement.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Derivation of LocalNameDeclaration::type

  • Key: ALF_-47
  • Legacy Issue Number: 16464
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 14.2.15

    The localNameDeclarationTypeDerivation requires the type of the statement to be the type of the expression if no type name is given. However, this is not correct, since the only way that the type name could be empty is if it is given as “any”, in which case the local name should be untyped.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

localNameDeclarationStatementAssignmentsAfter constraint

  • Key: ALF_-46
  • Legacy Issue Number: 16463
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause 14.2.15 LocalNameDeclarationStatement

    The localNameDeclarationStatementAssignmentsAfter constraint states “The assignments after a local name declaration statement are the assignments before the statement plus a new assignment for the local name defined by the statement.” The assignments should be the assignments after the expression of the statement plus the new assignment (so as to include assignments made in the expression).

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

ForStatement Should Have a Composition Association to Block

  • Key: ALF_-45
  • Legacy Issue Number: 16462
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 14.2.12 for Statements

    ForStatement should have a composition association with its body Block.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Block Assignment Constraints

  • Key: ALF_-44
  • Legacy Issue Number: 16460
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 14.2.4 Block

    • The second sentence of the description of the Block::assignmentAfter derived property mentions “statement” twice when it should say “block”.

    • The blockAssignmentsBefore constraint should have the definition “The assignments before the first statement of a block are the same as the assignments before the block.”

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Correction to superInvocationExpressionTarget Constraint

  • Key: ALF_-43
  • Legacy Issue Number: 16459
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.55 SuperInvocationExpression

    The superInvocationExpressionImplicitTarget constraint should include the condition that the containing behavior has only a single superclass

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Correction to shiftExpressionOperands Constraint

  • Key: ALF_-42
  • Legacy Issue Number: 16458
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.53 ShiftExpression

    The description of the shiftExpressionOperands constraint should say “The first operand expression of a shift expression must have the type BitString or Integer. The second operand expression must have the type Integer.” (per Subclause 8.6.3).

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

SequenceOperationExpression Constraints

  • Key: ALF_-41
  • Legacy Issue Number: 16457
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.50 SequenceOperationExpression

    • SequenceOperationExpression needs a constraint that a name may not be assigned in both the primary expression and any tuple argument expression.

    • SequenceOperationExpression should have a derived association with an optional LeftHandSide that is created in the case of an “in place” operation and must have its constraints satisfied. The sequenceOperationExpressionTargetCompatibility constraint should also require that, for an “in place” operation, the primary expression have the form of a left-hand side and, if for a local name, the local name must already exist.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

SequenceOperationExpression Should Override parameterElements

  • Key: ALF_-40
  • Legacy Issue Number: 16456
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.50 SequenceOperationExpression

    SequenceOperationExpression should override the parameterElements operation to only return the parameters after the first, since the argument for the first parameter is given by the primary expression not in the tuple.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

SequenceConstructionExpression Needs to Override updateAssignments

  • Key: ALF_-39
  • Legacy Issue Number: 16455
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.46 SequenceConstructionExpression

    SequenceConstructionExpression needs to override updateAssignments. For a sequence expression list, the assignments before each element expression should be the assignment after the previous one and the assignments after the sequence construction expression are the assignments after the last element expression. For a sequence range the assignments before both expressions are the assignments before the sequence construction expression and the assignments after the sequence construction expression are the assignments after the expressions. There should also be a constraint on sequence ranges that the same local name cannot be assigned in both expressions

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

SequenceConstructionExpression Constraints

  • Key: ALF_-38
  • Legacy Issue Number: 16454
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.46 SerquenceConstructionExpression

    • SequenceConstructionExpression needs constraints on the type and multiplicity of its sequence elements. However, the rules here (and as stated in Subclause 8.3.15) need to allow for bit string conversion of integer elements for a bit string sequence.

    • The description of the sequenceExpansionExpressionVariableSourceDerivation constraint should also state that the type of the assigned source for the expansion variable is the type of the primary expression and the multiplicity bounds are both 1.

    • SequenceExpansionExpression needs a constraint that no names defined before the argument expression may be reassigned in the argument expression (per the Semantics in Subclause 8.3.19), not just the expansion variable.

    • The description of the sequenceExpansionExpressionListUpperDerivation constraint says “lower bound” when in should say “upper bound”.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    Agreed. However, only the first bullet in the issue summary is for Subclause 13.2.46 SequenceConstructionExpression. The second bullet is for 13.2.48 SequenceExpansionExpression. The third bullet is for 13.2.49 SequenceExpressionList (not “SequenceExpansionExpressionList”).

  • Updated: Fri, 6 Mar 2015 21:48 GMT

SequenceConstructionExpression::typeName May Be Empty

  • Key: ALF_-37
  • Legacy Issue Number: 16453
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.46 SequenceConstructionExpression

    The description of the sequenceConstructionExpressionType constraint should make it clear that it is legal for the typeName property to be empty (corresponding to a type name notation of “any”).

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Error in qualifiedNameDisambiguationDerivation

  • Key: ALF_-36
  • Legacy Issue Number: 16452
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.42 QualifiedName

    In the description of qualifiedNameDisambiguationDerivation, “If a qualified name is not ambiguous or it resolves to a namespace…” should be “If a qualified name is not ambiguous or it has a qualification that resolves to a namespace…”

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

PositionalTuple Needs a Constraint

  • Key: ALF_-33
  • Legacy Issue Number: 16449
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.40 PositionalTuple

    PositionalTuple should have a constraint that it does not have more arguments than its invocation has parameters.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

QualifiedName::templateName Needs a Description

  • Key: ALF_-35
  • Legacy Issue Number: 16451
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.42 QualifiedName
    QualifiedName::templateName needs a description

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Error in propertyAccessExpressionLowerDerivation

  • Key: ALF_-34
  • Legacy Issue Number: 16450
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.41 PropertyAccessExpression

    The propertyAccessExpressionLowerDerivation constraint description refers to upper bounds when it should refer to lower bounds

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

NameExpression Should Override updateAssignments

  • Key: ALF_-31
  • Legacy Issue Number: 16447
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.34 NameExpression

    NameExpression should override updateAssignments to return the assignments after its derived propertyAccess expression, if it has one (i.e., if it disambiguates to a feature reference).

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Problems with NameLeftHandSide Constraints

  • Key: ALF_-32
  • Legacy Issue Number: 16448
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.35 NameLeftHandSide

    • There needs to be a constraint on NameLeftHandSide that if its name is qualified, and does not disambiguate to a feature, then it resolves to a parameter of the behavior containing the left-hand side, and, if it disambiguates to a feature, it resolves to a single referent that is a structural feature.

    • In the nameLeftHandSideAssignmentAfterDerivation constraint, if the named left hand side has an index, then the assignments after the left hand side should be the assignments after the index.

    • The derivations for assignmentBefore and assignmentAfter for NameLeftHandSide need to account for the possibility of the name disambiguating to a feature reference

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Problem with the NamedExpression Conversion Constraints

  • Key: ALF_-29
  • Legacy Issue Number: 16444
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.31 NamedExpression

    The constraints namedExpressionIsBitStringConversion and namedExpressionIsCollectionConversion cannot really be checked within the context of NamedExpression, since there is no way from that context to determine what the type of the “corresponding parameter” is.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 21:48 GMT

NamedTuple Needs a Constraint

  • Key: ALF_-30
  • Legacy Issue Number: 16445
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.33 NamedTuple

    NamedTuple should have a constraint that its argument names all correspond to parameter names of its invocation and that no argument name appears more than once.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Errors in LogicalExpression Constraints

  • Key: ALF_-28
  • Legacy Issue Number: 16443
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.29 LogicalExpression

    • The definitions of the logicalExpressionIsBitStringConversion1 and logicalExpressionIsBitStringConversion2 constraints mention “shift expression” when they should say “logical expression”.

    • The logicalExpressionOperands constraint should allow for BitString and Integer operands (per the semantics of logical expression in Subclause 8.6.7).

    • The logicalExpressionTypeDeriviation constraint should give the type BitString if the expression is bit-wise.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

literalExpressionTypeDerivation Is Not Necessary

  • Key: ALF_-27
  • Legacy Issue Number: 16442
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.28 LiteralExpression

    The constraint literalExpressionTypeDerivation (“The type of a literal expression is given by the type of the literal, as defined for each subclass below.”) is not necessary, since it doesn’t provide any actual constraint. (Plus, in the current document organization, not all of the subclasses are “below” the subclause on LiteralExpression.)

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    Agreed.

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Derivations of type, lower and upper for Invocation Expressions

  • Key: ALF_-25
  • Legacy Issue Number: 16440
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.23 InvocationExpression

    The derivations of type, lower and upper inherited in InvocationExpression are based on the return parameter of the referent of the expression. This doesn’t work for referents that are not behaviors or operations. Specifically:

    • For an InstanceCreationExpression, the referent may be a classifier (Class or DataType), in which case, the type needs to be the referent itself and lower and upper need to both be 1.

    • For a BehaviorInvocationExpression, the referent may be an association end, in which case the type, lower and upper need to be the same as for the end.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Constraint Needed on FeatureLeftHandSide

  • Key: ALF_-24
  • Legacy Issue Number: 16439
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.18

    There needs to be a constraint on FeatureLeftHandSide that it resolves to a single referent that is a structural feature.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    Agreed. Note that the revised text below presumes the resolution for Issue 16435, which adds the referent derived property.

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Corrections to InvocationExpression::parameterElements

  • Key: ALF_-26
  • Legacy Issue Number: 16441
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.23 InvocationExpression

    • The return parameter of the InvocationExpression::parameterElements helper operation should be ordered.

    • The definition of InvocationExpression::parameterElements should also handle the case in which the reference is an association end.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    Agreed. Though ordering the return parameter on parameterElements presumes a resolution to Issue 16472 such that the ownedMembers of a Namespace are ordered.

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Corrections to updateAssignments for ConditionalTestExpression

  • Key: ALF_-23
  • Legacy Issue Number: 16437
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.13 ConditionalTestExpression

    The description of the updateAssignments operation for ConditionalTestExpression should clearly state that assignments can be made in the first operand expression. It should also state that the type of newly defined names is the effective common ancestor of the types of the name in each of the second and third operands

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Require Non-Template Classifier

  • Key: ALF_-22
  • Legacy Issue Number: 16436
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclauses: 13.2.8 CastExpression and 13.2.10 Classification Expression

    The castExpressionTypeResolution and classificationExpressionTypeName constraints should require a non-template classifier

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Derived Attributes for LeftHandSide

  • Key: ALF_-21
  • Legacy Issue Number: 16435
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.6 LeftHandSide

    A left hand side should have derived type, lower and upper attributes, since these are defined in Subclause 8.8.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    Agreed (however, the correct subclause for LeftHandSide is 13.2.26, not 13.2.6). Constraints for AssignmentExpression also refer to the type and bounds of the left-hand side. Note, though, that the type and bounds for a left-hand side for the first assignment of a local name cannot be derived directly from the left-hand side, since they are determined by the right-hand side of the assignment. But this is already accounted for in the simple assignment multiplicity and type conformance constraints for an AssignmentExpression.

  • Updated: Fri, 6 Mar 2015 21:48 GMT

binaryExpressionOperandMultiplicity Constraint is Too Strong for EqualityExpression

  • Key: ALF_-20
  • Legacy Issue Number: 16434
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.4

    The binaryExpressionOperandMultiplicity constraint requires that the operands of a binary expression have a multiplicity upper bound of 1. However, an equality expression (a kind of binary expression) is allowed to compare to “null”, which has a multiplicity upper bound of zero.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Errors in BehaviorInvocationExpression Constraints

  • Key: ALF_-19
  • Legacy Issue Number: 16432
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.3 BehaviorInvocationExpression

    • The behaviorInvocationExpressionReferentDerivation should allow for resolution of the target to an association end.

    • The behaviorInvocationExpressionArgumentCompatibility constraint should note that it only applies if the target does not disambiguate to a feature reference.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Type Conformance for Compound Assignments for Bit Strings

  • Key: ALF_-18
  • Legacy Issue Number: 16431
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 13.2.2

    The assignmentExpressionCompoundAssignmentTypeConformance constraint should also handle compound assignments for bit string operators.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

IndexOf Return Type

  • Key: ALF_-15
  • Legacy Issue Number: 16425
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 11.3.6 Sequence Functions

    In Table 11-14, the return type of IndexOf should be Integer, not any.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Errors in Abstract Syntax Attribute Names

  • Key: ALF_-17
  • Legacy Issue Number: 16429
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclauses: 13.2.31 NamedExpression, 15.2.9 EnumerationDefinition, 15.2.15 NamespaceDefinition, and 15.2.16 OperationDefinition

    • NamedExpression::isBitStringConverstion should be isBitStringConversion
    • EnumerationDefinition::classDefinitionSpecializationReferent should be enumerationDefinitionSpecializationReferent
    • NamespaceDefinition::annotationAllowed should not be abstract.
    • OperationDefinition::redefinedOperations should be redefinedOperation

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    Agreed. (Note, however, that “classDefinitionSpecializationReferent” and “annotationAllowed” are not an attributes, they are a constraint and a helper operation, respectively. But the indicated errors still need to be corrected.)

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Synthesis of the Name of a Reception Definition

  • Key: ALF_-14
  • Legacy Issue Number: 16424
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause 10.5.4: ReceptionDefinition

    In the syntax for ReceptionDefinition, the condition for d.name should be

    {d.name=d.signal.nameBinding->last().name}

    .

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Errors in Collection Function Table

  • Key: ALF_-16
  • Legacy Issue Number: 16426
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 11.5 Collection Functions

    In Table 11-15, “ordered nonuique” [sic] appears twice (first column, second and third rows) and should be replaced with “sequence”. remove, removeAll and removeOne should return “T[*] sequence”.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Constructors and Diamond Inheritance

  • Key: ALF_-13
  • Legacy Issue Number: 16423
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 10.5.3.1 Constructors

    At the end of Subclause 10.5.3.1 it states that: “In the absence of explicit constructor invocations at the start of a constructor body (and also in the case of the default constructor behavior), a super constructor invocation is made implicitly for each immediate superclass, in the order the superclasses appear in the specializes list of the class containing the constructor, before executing any statements in the constructor body.” However, if the immediate superclasses themselves have common ancestors (so called “diamond inheritance”), applying this rule recursively will result in the constructors of these common ancestors being called multiple times.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    Agreed. Handling diamond inheritance can be tricky. The approach proposed here leaves the current constructor semantics largely in place, and simply adds that, after a constructor from a certain class is called on an object, other calls on constructors from the same class have no effect. This could be implemented adding class-specific initialization flags to the implementation of the object or by “linearizing” the sequence of direct and indirect super constructor calls and removing any redundant calls.

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Error in ProcessQueue Example

  • Key: ALF_-12
  • Legacy Issue Number: 16422
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 10.4.3 Active Classes

    In the ProcessQueue example in Subclause 10.4.3, “sign” that appears twice in the classifier behavior should be “sig”.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Error in Singleton Examples

  • Key: ALF_-11
  • Legacy Issue Number: 16421
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause 10.4.2 Classes

    In the Singleton example use in Subclause 10.4.2 under Semantics, “allinstances” should be “allInstances”.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Return Statements with no Expression

  • Key: ALF_-9
  • Legacy Issue Number: 16419
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclauses: 9.14 return Statements
    A return statement without an expression should be allowed for a behavior without a return parameter.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Implicit Imports

  • Key: ALF_-10
  • Legacy Issue Number: 16420
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 10.1 Overview

    It is only necessary to require implicit imports of standard model library packages into model units. Any direct or indirect subunits of a model library unit with implicit imports will have visibility upwards of the packages imported into the model unit. Also, applying «ModelLibrary» to a subunit cannot prevent this visibility of the standard model library packages, and so this stereotype is also actually only effective on a model unit.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Evaluation of Loop Variable Definitions

  • Key: ALF_-8
  • Legacy Issue Number: 16418
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 9.12 for Statements

    It should be made clear that the expressions in the loop variable definitions of a for statement are evaluated sequentially in the order of the loop variables (per the mapping). (Or, if the expressions are evaluated concurrently, then there needs to be a constraint that the same name cannot be assigned in more than one of those expressions.)

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    Rather than adding a constraint (and changing the mapping), it seems easier to just make it clear that they are evaluated sequentially. And, in the abstract syntax, ForStatement::variableDefinition is ordered, which also indicates that sequential evaluation is the intent.

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Boolean Literals Cannot Be Used as Identifiers

  • Key: ALF_-4
  • Legacy Issue Number: 16414
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause 7.5: Names

    Subclause 7.5 should says that reserved words cannot be used as identifiers, but it should also note that Boolean literals (which are not classified as reserved words) can also not be used as identifiers.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Missing Cross Reference in Subclause 9.6

  • Key: ALF_-7
  • Legacy Issue Number: 16417
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 9.6 Local Name Declaration Statements

    Subclause 9.6 should have a cross reference to the abstract syntax class InstanceCreationExpression, since the InstanceInitializationExpression production creates an instance of that class.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Parenthesizing Left Hand Sides

  • Key: ALF_-6
  • Legacy Issue Number: 16416
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 8.8 Assignment Expressions

    It should be allowed to parenthesize a left hand side. This makes it possible to parse the left hand side simply as an expression and then check afterward if it is correct (as is done in the grammar given in the annex). It is also consistent with Java syntax.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Error in Synthesis of Null Expressions

  • Key: ALF_-5
  • Legacy Issue Number: 16415
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 8.3.15: Sequence Construction Expressions

    In Subclause 8.3.15, the parsing of a NullExpression should set the hasMultiplicity=true for the SequenceConstructionExpression, otherwise the derivation of the lower and upper attributes (see Subclause 13.2.46) will result in those both being 1 instead of both being 0.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    In Subclause 8.3.15 Sequence Construction Expressions, under Syntax, in the production for SequenceConstructionExpression, in the second line, after “NullExpression” add “(hasMultiplicity=true)”.

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Null Template Binding Arguments

  • Key: ALF_-3
  • Legacy Issue Number: 16413
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Subclause: 6.2 Templates

    The rule in Subclause 6.2 for constructing the name of an equivalent bound element does not account for the possibility that one of the arguments may be null (i.e., “any”). While the syntax for template bindings in qualified names (Subclause 8.2) does not allow “any” to be used as a template argument, such an argument can result from the rules for the implicit binding for a template behavior as given in Subclause 8.3.9.

  • Reported: ALF 1.0b2 — Fri, 29 Jul 2011 04:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    agreed

  • Updated: Fri, 6 Mar 2015 21:48 GMT

Correction to Section 8.3.6, Property Access Expressions

  • Key: ALF_-2
  • Legacy Issue Number: 16015
  • Status: closed  
  • Source: RPC Software ( Ted Stockwell)
  • Summary:

    There is a small problem in section 8.3.6 regarding property access expressions.
    The problem is that the concrete syntax defined in that section will not
    actually match the examples given in that section.

    ---------
    Here is the concrete syntax defined in that section...

    PropertyAccessExpression(e: PropertyAccessExpression)
    = FeatureReference(e.featureReference)

    FeatureReference(f: FeatureReference)
    = FeatureTargetExpression(f.expression) "." NameBinding(f.nameBinding)

    FeatureTargetExpression(e: Expression)
    = NameTargetExpression(e)

    NonNamePrimaryExpression(e)

    NameTargetExpression(e: NameExpression)
    = ColonQualifiedName(e.name)

    Note that NameTargetExpression only allows ColonQualifiedName(s) to be used to
    define a PropertyAccessExpression.

    -------
    Here are the examples of property access expressions from the same section...

    poleValue.im
    this.node
    members.name
    jack.house

    Note that, because NameTargetExpression only allows ColonQualifiedName(s), none
    of the above examples matches the concrete syntax.

    ----------
    I suspect that NameTargetExpression should be defined to be a QualifiedName,
    which is defined to be either a DotQualifiedName, an UnqualifiedName, or a
    ColonQualifiedName, so...

    NameTargetExpression(e: NameExpression)
    = QualifiedName(e.name)

    where QualifiedName is defined elsewhere as:

    QualifiedName(q: QualifedName)
    = ColonQualifiedName(q)

    DotQualifiedName(q)
    UnqualifiedName(q)
  • Reported: ALF 1.0b2 — Mon, 7 Feb 2011 05:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    This is indeed a little confusing, but it is not actually an error in the spec. There is a note on page 38 that says:
    “See Subclause 8.2 for rules on the disambiguation of a qualified name using the dot notation to a property access expression. Such a potentially ambiguous expression is always initially parsed as a qualified name.”
    For example, as far as context-free parsing is concerned, an expression like “poleValue.im” is ambiguous – it could be a qualified name using the dot notation, or it could be a property access expression for the “im” attribute of the value of the name “poleValue”. Disambiguation requires using static semantic information on “poleValue” (e.g., is it a local name with a type that has an “im” property), as described in Subclause 8.2.
    Despite this conceptual ambiguity, the formal grammar is made unambiguous by always parsing “poleValue.im” initially as a qualified name. That is why a dot qualified name is not allowed as a name target expression. Possible disambiguation to a property access expression then happens as part of static semantic analysis (this is formally through the derived QualifiedName::disambiguation attribute specified in Subclause 13.2.42).
    Note also, by the way, that the grammar as given actually does parse “this.node” as a property access expression, because “this” is a reserved word, not a name. Thus, “this” is parsed as a NonNamePrimaryExpression (a ThisExpression, to be exact), not a NameTargetExpression.

  • Updated: Fri, 6 Mar 2015 21:48 GMT

StructuredMember should be renamed to StructuredElement

  • Key: ALF_-1
  • Legacy Issue Number: 16006
  • Status: closed  
  • Source: Anonymous
  • Summary:

    In order to play with ALF I have thrown together a parser for my own use.
    Along the way I have found a small error in the spec regarding the Abstract Syntax for ALF. Many clauses in the spec (Beta 1) refer to 'StructuredElement' and those same clauses say that StructuredElement is defined in clause 10.4.4. However, in clause 10.4.4 the element appears to be named 'StructuredMember' instead.

    It looks to me like StructuredMember should be renamed to StructuredElement since the term 'Element' appears to be the convention used throughout the rest of the spec.

  • Reported: ALF 1.0b2 — Wed, 2 Feb 2011 05:00 GMT
  • Disposition: Resolved — ALF 1.0
  • Disposition Summary:

    The intent was actually to change StructuredElement to StructuredMember (which is a better name for it), but the rest of the document outside Subclause 10.4.4 does not seem to have been properly updated for this (note that the parser grammar in the Annex uses StructuredMember).

  • Updated: Fri, 6 Mar 2015 21:48 GMT