Sunday, 20 April 2014

1. How do we manipulate the model?


Through the box's holes! That's why in previous posts I never discussed covering them over with a transparent film(*). So imagine having a set of fine tools, like the ones used by a watch maker or jeweller, to manipulate... what?  Well, of course it depends on whether you have a "proper" CAD modelling tool or not...

(*) A neat trick when drawing a view of of something (used by many famous artists I am told) is to put a transparent sheet between you and it, then tracing what you see onto the sheet. Camera Obscura work the same way, but with lenses and mirrors to project the image onto a table.

Using a proper CAD tool 
(Notice I invariably prefix "tool" with "CAD" - in order to be clear I'm talking about a computer based system modelling program, and not a method centric tool such as a technique or artefact description.)

If like me you have a CAD tool capable of constructing the model "inside the box" and maintaining views of it from all angles, then you can manipulate the model directly - by directly defining and changing its parts as you desire; whether changing their properties or relationships.  The tool then maintains all the views you want of the model, from all viewpoints simultaneously, enabling you to see in (pseudo-)real time the effects of your changes - from any viewpoint, not just the one through which you've changed the model.

Or, and maybe more intuitive for many, you can manipulate one of the CAD tool's views (notated in the standard way defined for the viewpoint), relying on the tool to keep the underlying model's parts in sync with the view's symbols that represent them (because on a view it's the parts' symbols your working with, not the parts themselves!); but not just on the view you are editing, all other views on which symbols representing the edited parts appear.

(But how can a CAD tool do this?   How does it know "the modelling and drawing rules"?  Because it's been programmed with the language and viewpoint notations we've previously been deeply discussing - it "knows" how we think... it's called a metamodel!)

Using Office Productivity Tools
Even though it's anno domini 2014 and CAD has been around since the last century, the vast majority of us still use word processors and presentation editors as our preferred (preferred???) means of documenting our system design models... sorry, views...  (or are they even views?  I'll come back to this later!)

Please do NOT think that this means we should abandon the thinking models I've been discussing page after page in which I put so much emphasis on distinguishing a model from a view of that model - but I do accept it makes using these ideas so much harder, because it's us and not a CAD tool that has to "look though" the view we are drawing or editing to imagine (i.e. model) the "three dimensional" system model that "must"  lie behind the "2D" view.  This can be tough.

But maybe not quite so hard if we recognise the difference between "nearby" and "far away" views.

Notably, "nearby".  All the views we see through one viewpoint are intimately related;  they are "near" each other.  For example, some views may document - i.e. draw symbols representing the static structure between some (few types of) parts, while other views convey the dynamic behaviour between those self same parts.

This "nearby" case is so like my old friend BS308, defining how to draw and inter-relate the three orthogonal views of an engineering assembly: having drawn two views (maybe "plan" and "front elevation"), BS308 made it possible (in theory!) to auto-generate the third view ("side elevation") - which is exactly what CAD tools do!  In much the same way, because of the underlying modelling rules (i.e. the metamodel), if I draw a dynamic view of my system model with symbols showing data flows or messages between the model's parts, I can "automatically" draw the corresponding structure view, showing symbols of the connective model elements needed to carry that data or those messages.

If I then make another dynamic view of some other behaviour of the same set of parts, I can "automatically" edit the overall structure view to accommodate any new or changed symbols representing the connectors this second set of flows require (unlike a proper CAD tool, most/all office tools can't do this of course, so I have to go back and manually make the edits myself... humph!)

And it's this intimacy between a viewpoint's views that naturally leads to the idea of a model lying behind the viewpoint's set of nearby views - and a quite a different model lying behind another, i.e. far away viewpoint. 

Sadly, it's this "far away" isolation between viewpoint specific models that has lead inextricably to different roles being responsible for different (partial system) models, further exacerbating the challenge of ensuring what's in the box is a joined up system design, and not a disjoint set of semi-detached artefacts, grouping nearby views together.  And there's a further challenge - because we fail to understand the difference between a symbol on a view representing part of the model, and the part itself these artefacts inevitably take on names such as "The(sic!) Operational Model", when in fact they are "Views of the System Design Model from the Operation Viewpoint".

Bottom line - if you have to work with semi-detached artefacts documenting views of an underlying system design mode, please please please

  1. Recognise the way these artefacts represent views from far away viewpoints, and how the inter-relationship between these viewpoints must influence the broader range of views - whether it be as simple as changing the name of something that appears in multiple viewpoints, or understanding how altering the dynamic behaviour in one viewpoint's view changes a static view in another, make sure your change is reflected in all your artefacts
     
  2. Lobby for a proper CAD tool!

No comments:

Post a Comment