This is not yet an announcement about a module for Drupal, and so is not announced as a Drupal project. It is an ambitious analysis project that I hope will help improve Drupal8 (it is too late for Drupal7), and will help a wide Drupal audience to better understand Drupal architecture, and selected core Drupal modules. It is necessarily hosted away from http://drupal.org.

I am calling this "downstream" analysis project DrUML (pronounced 'droo-em-el', with intonation like 'U-M-L'.)

http://www.webel.com.au/drupal/uml

This project is possibly of interest to people keen on:

  • Digitally traceable, strongly document-driven software engineering (including requirements engineering
  • UML models of software documentation
  • My UML Parsing Analysis recipe
  • Port-based systems engineering
  • Flow modelling for software, made possible by the OMG's SysML System Engineering Language, which I employ for architectural modelling.

You will not have to know graphical Unified Modeling Language (UML) or SysML well to benefit from this project; alone the encapsulation of "snippets" of Drupal documentation as dedicated nodes (consumed by my Drupal site "downstream" from Drupal.org) is very useful and instructive, because it collects tested wisdoms about Drupal (taken from Drupal.org) that are not subjected to such rigorous analysis on Drupal.org. Every Snippet node is to get accessible graphical examples, including plain old screenshots of Drupal user interface elements and settings.

This is substantial project, and is conceived to become part of a new and unique training course on Drupal, for those with some UML knowledge or interest in it.

Eventually, if I complete enough of the analysis layer, I want to generate at least some functioning Java, which (and this is an important constraint) is conceived to be able to interact with PHP-based Drupal, Drupal database tables, and should even be able to write some PHP to "plugin into" existing Drupal modules. It is not conceived as a Java replacement for Drupal, however in many years time and with support, that could also perhaps happen.

I call this more novel (and longer term) Java-based design layer aspect:

JUML: The Java+UML Content Management System
http://www.webel.com.au/drupal/uml/java

Pronounced 'joo-em-el', with intonation like 'U-M-L', the name is chosen to also sound a bit like both Drupal and Joomla, although in fact all the document mappings are to be from Drupal.org (only).

JUML is for now a toy implementation project; the parent analysis project DrUML is not toying, it is intended to become the first truly rigorous graphical analysis documentation of the most important aspects of the Drupal system, anywhere in the Drupal world.

I have clearly been letting my frustration with certain aspects of the Drupal design and API, and with some documentation, and with some Drupal documentation and coding culture, show through inappropriately in many recent issues, and it has offended and annoyed some maintainers and contributors.

These projects are designed to take that prevailing (and I feel mostly justified) frustration of mine off Drupal.org, and to channel that energy into constructive examples in a dedicated, Drupal-driven web site container for those who are interested in getting the following into Drupal8:

  • substantial object-orientation
  • flexible method-based hook encapsulation
  • inheritance of custom types, including both of fields and of user interface elements
  • more use of Gang-of-Four (GoF) and other well known software design patterns
  • better support for graphical software engineering technologies (such as Unified Modeling Language (UML),, which I believe can be achieved through type annotations for PHP (6+)

This involves a major time and money commitment on my part, and sponsors are most welcome. DrUML is conceived as a major engineering project, and as substantial and worthwhile as any other contribution to Drupal itself.