SECTION: The Webel MAll & MOptsSet classes MTools extensions (with SysMLv1 models)

Icon class
icon_class_computed
far fa-bookmark
Tutorial
Keywords
Please make sure you've read the intro page about this highly technical trail on the Webel libraries for the Wolfram Language and SysML4Mathematica.
The section is offered with special thanks to Mathematica expert Faysal Aberkane for making the MTools packages for object-orientation with the Wolfram Language available to "the Mathematica community.

Where we've been so far, and where we are going

This trail has so far covered the following topics, which more or less build on each other like a technology stack:

  • Some Webel coding conventions for the Wolfram Language, some of which are intended to "play nicely" with SysMLv1 modelling.
  • Very low level utilities such as the Devel`, Display` and Utility` packages.
  • The Doc` package for at least some structured ::usage documentation support, which also manages the '$arg$' and '$opt$' help holders system, which can be used "manually" in lower-level packages, and with more convenient automation via the HelpF` package for functions and the HelpO` package for classes and methods.
  • The Var` package Entity-based registry for "physical" variables (used in anger on some very complex Webel client application projects). Use of this relatively standalone package is completely optional and not required for all projects.
  • The HelpM` package, which uses MTools to make managing registration with the Webel help registries easier via the MArg, MOpt, MFunction, MPackage, MClass, and MMethod classes.

So far we've only briefly seen the Webel MAll class. Now it's time to dive in and see some of what it offers beyond the MTools BaseClass, how it offers options support for methods (in conjunction with the MOptsSet class), and how it is designed to work well with Webel SysML4Mathematica (v1).

It's about to get seriously object-oriented (but not only)!

And there's going to be a lot of Webel SysML4Mathematica diagrams

There are two separate object-oriented technologies for Mathematica and the Wolfram Language currently used on Webel projects (and always separately):

  1. MTools as extended through the Webel MAll "universal" class, the topic of this section, and used on some very complex Webel client projects, some examples of which we'll see in later sections.
  2. Webel Abstract Data Type (ADT) stateless pseudo-classes, adapted from a recipe from Roman Maeder, and extended to include inheritance, which we'll see in dedicated later sections and as applied to end application projects.

As you view these slides, please keep in mind that Webel IT Australia has special reasons for using OO technologies with Mathematica, especially because of work on combining the Wolfram Language with SysMLv1 and SysMLv2. And in any case:

Which means as regards this section, the use of MTools does not necessarily imply sacrificing all of the "super functional" Wolfram Language goodies!


If the SysMLv1 modelling slides mean nothing to you, by all means simply skip them. To learn Systems Modeling Language v1 (SysML®) for Model-Based Systems Engineering (MBSE) attend the Webel course:
Start section here

Slides in this section

If you want to navigate the entire section including the additional explanatory text click on the title link of the first slide to view the full slide page, then use the next links to move through the slide pages. If you just want to view the slide images only in sequence, click on any slide to view it larger in a viewer, then click again to move through each slide in this tutorial trail section.
Next trail section