About Codeable ModelsΒΆ

Codeable Models aims to provide an easy-to-use API for coding software design models akin to UML models, but radically simplified compared to the UML2 meta-model. That is, the API allows you to create metaclasses, classes, objects, stereotypes and their dependencies.

Typical use case for Codeable Models are:

  • Create models textually and be able to use textual tools such as search & replace, copy & paste, grep, and so on to edit them.

  • Ease model creation and manipulation through code - provided in Python scripts with little to no boilerplate code.

  • Using Python code to ensure model consistency, perform constraint checking, perform analyses, and calculate metrics.

  • Create domain models in your code and use them at runtime in your Python project, e.g. to realize a portion of the software system to reflect the domain model in a very literal way as envisaged in Domain-driven Design (DDD).

  • Generate visual representations of those models such as UML diagrams and tables, e.g. used to support understanding the big picture and communicating the model.

  • Generate other textual representations, such as Markdown or Latex texts.

  • Generate code and/or configuration scripts from the models.