Monday, June 29, 2015

Functional Decomposition

Mind mapping and functional decomposition:

BLUF (Bottom Line Up Front) for folks with a short attention span:

http://freemind.sourceforge.net/wiki/index.php/Import_and_export#MindManager

ITOT Freemind comes with a host of conversion routines:

     /data/info/freemind/accessories
          mm2xxx.xsl where xxx is your favorite form

In particular,

     mm2xls_utf8.xsl

does exactly what we want done: a tab delineated .xls file with all the tiers at their proper indentation.

Why should you care?
     Because this is a tool that can help you sort out all the noises in your mind that cause your eyes to open suddenly at 02:00 in the middle of the night.

     If you can get it out of your mind and onto paper (virtual or real) then you can sleep more soundly and comfortably.

Everybody wins.

=====

http://stackoverflow.com/questions/947874/what-is-functional-decomposition

Functional Decomposition is the process of taking a complex process and breaking it down into its smaller, simpler parts.

It's a bit more complicated than that of course:
https://en.wikipea.org/wiki/Functional_decomposition

But the basic idea is to take a certain number of key elements (referred to as Tier 0) and successively examine them to find their subordinate constituent parts going down layer-by-layer (or tier-by-tier, as is used in the lexicon).

This takes some head work, as you must ensure that the sub elements you identify are indeed orthogonal, that is, unique and separate from the other elements at each tier. In statistics we refer to such a quality as IID - Independent and identically distributed random variables.

But basically, they are their own thing at any particular tier level.

After doing this analysis at a particular tier, you then decompose that tier into its constituent parts.

And so on and so forth.

The good news is that this gives you a comprehensive view of all the elements of a problem at all of their respective tiers.

The bad news is that it is extremely tedious in coming up with the appropriate indices and even more so renumbering them all if your orthogonality analysis indicates that an element must be moved or removed, or another inserted.

I created a series of Microsoft Excel VBA (Visual Basic for Applications) macros in the late 1980s to create an automatically indexed functional decomposition based on the number of columns a particular value was indented:

That served me well for a decade or so of prioritizing and organizing concepts.

But then I moved to Linux in 2002.

Initially there were no such applications, and then in OpenOffice, and subsequently LibreOffice, they manifested themselves in an extremely arcane object model without any of the tools that VBA has to examine properties, methods, and the rest. And the documentation was hideous or non-existent.

So I just left it alone, using my Windows version in a VirtualBox VM (Virtual Machine) when I really needed it.

But the worm turned, things got better, and I got to a point where it was worth the effort to track this down under Linux.

So I did, and I have.

What really broke the ice was finding
http://www.openoffice.org/api/docs/common/ref/com/sun/star/sheet/XSheetOutline.html

which offers a comprehensive (functional decomposition) of all the uno (Universal Network Object) properties, which drive the macros.

The sheet above is now rendered with the click of a button to this:

that you can expand to higher tiers by clicking either the numbers in the upper left hand corner or the + boxes in the left panel.

Clicking 2 gives this Tier 1 expansion:

Clicking 3 gives this Tier 2 expansion:


=====

Now, along comes FreeMind:

http://freemind.sourceforge.net/wiki/index.php/Main_Page

that lets you build mind maps:
It has an export facility that gives a number of options.

The most obvious is a HTML rendition:
But this is rife with a host of nested Unordered List HTML tags (ul, li, etc). that are ignored on import to a text editor or a spreadsheet.

'Way too hard.

OTOH. There are other options under FreeMind:

Save as XHTML does indeed give you a clickable functional decomposition, without the index numbers.

Save as XHTML Java version also gives you a clickable functional decomposition, without the index numbers.

But now, working harder, and finding even better:

http://freemind.sourceforge.net/wiki/index.php/Import_and_export#MindManager

ITOT Freemind comes with a host of conversion routines:

     /data/info/freemind/accessories
          mm2xxx.xsl 
         where xxx is your favorite form (xls, html, text, whatever)

In particular,

     mm2xls_utf8.xsl

does exactly what we want done: a tab delineated .xls file with all the tiers at their proper indentation.

Microsoft Excel
To export to Microsoft Excel:
1. Use the menu item File > Export > Using XSLT...
2. Open the XSL file "mm2xls_utf8.xsl" (in /FreeMind/accessories)
3. Name the export file something.xls
4. Open the generated file by double-clicking it


Life is good.

But it takes paying attention and doing your homework. Nothing in life is free and you get what you pay for.

No comments: