Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

OpenModelAttribute.support = MANDATORY

Deprecated

Applying Stereotypes

ONAP Stereotypes

OnapModelLifecycle

There is currently only one ONAP stereotype defined, called OnapModelLifecycle. The definition in the profile looks like this:

Image Added

It has an attribute called "state" that defines the development lifecycle and is based on an enum LifecycleState. The LifecycleState can take one of the following values: 

  • INPUT                  Provided as a contribution to the model
  • DISCUSSION      Has been discussed by the model project team 
  • CLEAN                Has been agreed upon by the model project team
  • APPROVED        Has been approved by the modelling subcommittee

These correspond to the various phases of development of the artifacts in the ONAP model, as seen currently in the wiki pages. It is used as a means to capture that classification in Papyrus. The "base_Class" and "base_Property" attributes imply that the stereotype can be applied both to a "Class" and an "Attribute".

As the current wiki division of a model for a given release contains "INPUT", "DISCUSSION", and "CLEAN" pages (note: there is no equivalent APPROVED wiki), there is no need to note this stereotype in the "Applied Stereotypes" column. 

Wiki Constraints: The current wiki classification doesn't allow for applying the stereotype to both a Class and an Attribute, whereas in the Papyrus model it does. For example, in the wiki, one can't have a Class that is CLEAN (meaning the team has agreed they want that class in a release), and certain attributes to still be in a DISCUSSION phase (meaning the attribute as currently defined has not been agreed). Papyrus allows for this.

IISOMI Stereotypes

As stated in the introduction section, only the IISOMI stereotypes that are currently relevant to ONAP model development are defined. 

OpenModelClass

The OpenModelClass stereotype, as the name implies, gets applied to a Class. It is defined as follows:

Image Added

The definition of the attributes are as follows:

  • base_Class : Class               Implies this stereotype gets applied to a Class
  • support: SupportQualifier      Implies the "support" attribute defines the required support over a management interface and is based on an enum SupportQualifier, which takes one of the following values:
    • MANDATORY  The capability, as referenced by the artifact, shall be supported.
    • OPTIONAL      The capability, as referenced by the artifact, may or may not be supported.
    • CONDITIONAL-MANDATORY The capability shall be supported under certain conditions, specifically:
      When qualified as CM, the capability shall have a corresponding constraint defined in the "condition" attribute. If the specified constraint is met then the capability shall be supported.
    • CONDITIONAL-OPTIONAL     The capability may be supported under certain conditions, specifically:
      When qualified as CO, the capability shall have a corresponding constraint defined in the "condition" attribute. If the specified constraint is met then the capability may be supported.
  • condition                                When the "support" attribute has a value of CONDITIONAL-MANDATORY or CONDITIONAL-OPTIONAL, this specifies the constraint that must be met.

The use of the OpenModelClass stereotype is currently applied by default to every class, with the default "support" being MANDATORY. Note: This stereotype is currently not being captured in the wiki for classes.

Wiki constraints: There is currently no capturing of the OpenModelClass as an "Applied Stereotype" to a Class.

OpenModelAttribute

The OpenModelAttribute stereotype, as the name implies, gets applied to an Attribute of a Class.

It is defined as follows:

Image Added

As one can see from the many attributes in this stereotype, there are multiple additional values that can be defined for an "Attribute". The definition of the attributes are as follows:

  • base_StructuralFeature        This is essentially saying it gets applied to an attribute
  • partOfObjectKey