Home > sysml, technical, uml > Architectural, Mechanistic, And Detailed

Architectural, Mechanistic, And Detailed

Bruce Powel Douglass is one of my favorite embedded systems development mentors. One of his ideas is to categorize the activity of design into three levels of increasingly detailed abstraction:

  1. Architectural (5 views)
  2. Mechanistic
  3. Detailed

The SysML figure below tries to depict the conceptual differences between these levels. (Even if you don’t know the SysML, can you at least viscerally understand the essence of what the drawings are attempting to communicate?)

Arch Mech Detailed

Since the size, algorithmic density, and safety critical nature of the software intensive systems that I’ve helped to develop require what the agile community mocks as BDUF (Big Design Up Front), I’ve always communicated my “BDUF” designs in terms of the first and third abstractions. Thus, the mechanistic design category is sort of new to me. I like this category because it shortens the gulf of understanding between the architectural and the detailed design levels of abstraction. According to Mr. Douglass, “mechanistic design” is the act of optimizing a system at the level of an individual collaboration ( a set of UML classes or SysML blocks working closely together to realize a single use case). From now on, I’m gonna follow his three tier taxonomy in communicating future designs, but only when it’s warranted, of course (I’m not a religious zealot for or against any method), .

BTW, if you don’t do BDUF, you might get CUDO (Crappy and Unmaintanable Design Out back). Notice that I said “might” and not “will”.

  1. September 14, 2009 at 11:10 am

    For small systems the fixed abstraction paradigm is practical. For more complicated systems like networks and families of systems a fixed hierarchy becomes labor intensive. I use an open abstraction hierarchy to allow families of products to share architectural features and attributes.

    I also use functional, spatial and temporal views to illustrate my designs. A functional view would be a “Use Case” Diagram. Some temporal views would be “Sequence”, “State” and “Collaboration” Diagrams and a spatial view would be a “Deployment Diagram”.

  1. No trackbacks yet.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.