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):
- 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.
- 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: