M&P BLOCKS inside BLOCKS
Posted on March 16, 2013 by Herman Dolder
Last modified on February 19, 2014.
An M&P BLOCK may contain internally a set of BLOCKS, HTML5
Elements and SVG Elements. This facility allows to implement
multiple levels of abstraction (as many as appropriate).
An M&P application is a BLOCK containing BLOCKS in multiple
levels. We name this top BLOCK the
"TopBoard" of the application, and the entire structure the "BLOCK
Each BLOCK in the BLOCKS Tree is a "BOARD". And each BLOCK
belongs to a BOARD.
The set of BLOCK that belongs to a BOARD is its "blockset". A
BOARD can contain an "empty blockset".
The Main Facility of M&P
In M&P we seek to maximize the adaptability of the application
throughout its entire life cycle.
The BLOCKS inside BLOCKS facility is the "main facility" of M&P for
organizing (and reorganizing) an application and managing complexity. It
facilitates the "evolutive
refactoring" of applications.
Two important abstraction concepts implementation
The BLOCKS inside BLOCKS facility allows us to implement two
important abstraction concepts
strongly related with adaptability:
The Information-hiding concept
It consists of encapsulating aspects of the application in BLOCKS in
such a way that its functionality is accessible only through
predefined stable interfaces to allow the contents of the BLOCK
to evolve without impacting the operation of other BLOCKS.
The concept of Complexity-hiding is a complement of the concept of
Information-hiding. It has to do with the understanding of the
structure and behavior of the application by the people who must
perform its maintenance and extension.
The following idea is useful for introduce the concept:
"When something, that we know is complex, looks simple in an stage, it
usually means there’s something interesting going on in the back-stage".
from which we derive:
"To make the stage look simple, hide the complexity in the back-stage"
and using BLOCKS World terminology:
"To make a BOARD look simple, hide the complexity in lower level BOARDS".