OOE graphical UML models

HOT TIP: this content is flagged as highly recommended !
Keywords

This essential and unique subzone progressively includes information on the main Interfaces/Classes in the OOE = Object Oriented Examples = One Of Each object-oriented tutorial module, modelled here in graphical Unified Modeling Language (UML) using the Webel «!wrapper» @Components and «!analysis» @Interfaces recipe - a powerful UML analysis modelling strategy developed over many years by Dr Darren of Webel IT Australia, adapted here to parasitically analyse "already design(ed)" reverse-engineered PHP Interfaces/Classes.

All UML analysis pages that represent demonstration OOE Classes are
linked to the live OOE demonstration pages on this tutorial web site !

Although it is very much a work-in-progress, this zone is already of enormous use, as it shows exactly how an object-oriented bridge to Drupal core can be constructed so that one need never deal directly with Drupal's structured arrays ever again (which is very good news indeed).

The graphical Unified Modeling Language (UML) analysis model diagrams of the OOE tutorial module are based on (and traceable to) reverse-engineered PHP "design(ed)" Interfaces/Classes generated from the OOE module code as XMI for UML using PEAR: UML PHP, which UML XMI can be imported into the best UML tools (including MagicDraw UML).

However, there are limits to how well one can reverse-engineer PHP into UML due to limits in its type-hinting mechanisms and Drupal documentation conventions, which is one crucial reason why in the Webel recipe for modelling PHP all associative UML modelling is performed with «!wrapper» @Components in special, completely separate «!analysis» packages that know about the reverse-engineered design elements.

Please click to view this image full size in an image viewer:

OOE_%20analysis%20vs%20design_%20Webel%2

It is important that you read any Webel modelling policy notes that appear under the UML diagrams (within a collapsible Notes fieldset) within this zone or you will otherwise probably not be able to understand the very powerful (and highly consistent) Webel «!wrapper» @Component and «!analysis» @Interface system that is used track, analyze, and model the reverse-engineered design(ed) PHP Classes and Interfaces !

The Webel «!wrapper» @Component and «!analysis» @Interface system is optimised for use with MagicDraw UML, on which tool Dr Darren of Webel IT Australia previously worked as expert UML consultant.

There is a lot to this site, the tutorials, and the OOE = Object Oriented Examples = One Of Each tutorial module, so don't expect to understand it all at once. Even if you aren't a graphical Unified Modeling Language (UML) expert, your number one friend is the OOE graphical UML models, because without them you will never understand why the object-oriented PHP is coded as it is ! Fortunately, it doesn't matter too much where you are within the UML model pages, as they are designed to be cross-navigable. They also (mostly) link to the matching OOE: API reference pages including the complete PHP code.

All of the demos are driven via the OoeBridge, which enables one to represent all of the Drupal hook and custom handler functions of one module as methods in a Class accessible to graphical UML.

Good places to start within the OOE UML models include:

- The minimal Demo project with a page controller, page menu item, and a very simple block.

- The Drupal\ooe\Demo\Project overview, which illustrates also how the special OOE creation pattern stereotype notations «!chosen» and «!new» are used together. Compare with how the «!product» and «!new» stereotype notations are used together in factories like AbstractFactory (and DefaultFactory) which supply products for classes like DefaultModuleHelper.

- CurrentPosts (as adapted to OOE) without an OO page controller (calls back on the .module file)

- Drupal\ooe\Module

- Drupal\ooe\Page

- Drupal\ooe\Project

- Drupal\ooe\Menu

- DefaultMenuItem

- DemoOfMenuTabs

Finally, please note that this is NOT a graphical UML model of Drupal7 core (and the PHP coding style of Drupal7 core does not lend itself well to reverse-engineering to UML); this is a UML model of the OOE = Object Oriented Examples = One Of Each tutorial module, which is a UML-friendly object-oriented bridge to Drupal7 core. Nevertheless, through the encapsulation in OOE of Drupal7 core as an OO bridge, one can learn an awful lot about Drupal7 core and how Drupal7 works !

Please visit also the automatically generated OOE API.

Visit also