Skip to main content

Generates a database from a set of *.xcm (executable class model) files

Project description

Make an Executable UML Repository

Creates a model repository database from a Shlaer-Mellor Executable UML metamodel.

The latest Shlaer-Mellor metamodel is specified inside this package as a folder of .xcm (executable class model) files and a types.yaml file.

Each subsystem of the metamodel (class-attribute, state, etc) is defined in a single .xcm file all within a single foler. That folder also contains one types.yaml file specifying the db type (data type) to use for each metamodel attribute type. The db type 'string', for example, is associated with the State Name metamodel type.

We target the little known, but exceptionally useful TclRAL database. It's lean and mean and supports a true relational algebra as defined by C.J. Date and Hugh Darwen. So we can use nested relational algrebra without any of that SQL mess. It is implemented in C and Tcl, but we provide a python front end called PyRAL to keep everything pythonic.

Why you need this

You probably don't. What you want instead is the metamodel populator which does use this package. It's not up on PyPI yet. Give me a couple of weeks and it should be here. I'll post a link when it's ready.

Though if you did want to fiddle with the metamodel, generate your own variation of it and such, this package might come in handy.

Installation

Create or use a python 3.11+ environment (early python versions may or may not work).

% pip install make-xuml-repo

At this point you can invoke the repository generator via the command line.

From the command line

With the default usage just type:

% makexumlrepo

Two files will be created in this directory as a result. An mmdb.ral file and a mmclass_ntuples.py file.

The mmdb.ral file is actually a text file that can be opened by TclRAL (via PyRAL) and it will establish an empty relvar per metamodel class. You can use the previously mentioned populator, or your own, to load it up with instances of your modeled domains.

The mmclass_ntuples.py file is a handy set of python named tuples. Each named tuple corresponds to a metamodel class and provides a field for each attribute of that class. PyRal then uses this to insert one or more tuples into the corresponding relvar.

In my case, I generate the two files and then copy them into my metamodel populator package.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

make_xuml_repo-0.7.0.tar.gz (28.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

make_xuml_repo-0.7.0-py3-none-any.whl (37.6 kB view details)

Uploaded Python 3

File details

Details for the file make_xuml_repo-0.7.0.tar.gz.

File metadata

  • Download URL: make_xuml_repo-0.7.0.tar.gz
  • Upload date:
  • Size: 28.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.4

File hashes

Hashes for make_xuml_repo-0.7.0.tar.gz
Algorithm Hash digest
SHA256 1af9839c0661ab68b7123f4b83d62f6399674f7fc77ea8c90dd6c66fff7937ac
MD5 7b8791e8311acc2d6f29cb87a3a3e6e4
BLAKE2b-256 48117f1ff796cbfea71ea8beb338dcfbc957b69e187a0fac793c4239fb5c2123

See more details on using hashes here.

File details

Details for the file make_xuml_repo-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: make_xuml_repo-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 37.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.4

File hashes

Hashes for make_xuml_repo-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 62ae5e25a1030b9551c04fd988e2bfd812239ad2e8cd6ab8d907dde86e5d706e
MD5 7faef36e70c8b34f4d41b16b062c68be
BLAKE2b-256 25e9b96d92c2255ba69837bcb6623827de38d901f2aef1f130d3c0cba9be566e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page