Saturday, December 11, 2010

Project 11 - Problems Solving Techniques: Program Hierarchy – Tracing Design Output to its Source

Program Hierarchy in Programming:

A Hierarchy is a ranking system used to organize just about anything from people to values. In this system, the subject(s) are dividing into levels with the main element (or most important) at the top level, and all subordinate levels beneath it in order of importance or role in the greater scheme of things.

As mentioned in both previous posts (Top-Down Design – Unitizing a Problem into Modules and Systems and Program Mapping Tools), a hierarchy chart can be known as a Structure Chart. This chart is used in Top-Down design as a way to break down the structure of a system to its most basic manageable components. With this chart, a person is able to see the role of each module within each level as it pertains to running the entire system. This makes easier the process of understanding the components and interactions necessary to produce the whole—being the program.

In conjunction with a structure chart, a programmer can use hierarchy in the form of a flow chart, as this problem solving tool uses an algorithm for determining exactly where to locate the source of an issue.

So, knowing the full construct of the program from its fullest form to its smallest components, one can then use the flow chart to locate a fault by eliminating parts based on an algorithm. This can be as easy as multiple "yes"/"no" questions that would lead you down each level of the tree, until you get to the problematic component.

Program Hierarchy Outside of Programming:

Outside of programming (as mentioned before) a hierarchy approach to problem solving works in a multitude of facets. Troubleshooting guides for car maintenance or almost completely built around Structure charts in conjunction with flow charts.

One starts with the whole (the car), and then separates the whole into its up (engine, lights, starter, etc.). These categories can then be broken down further to the components that comprise what is necessary for that part to function (Lights: wire, bulb, connectors, etc.).

By having a vehicle completely mapped out, a flow chart can be produced to explain how each output from one component affects thin input and subsequent output of the higher level component.

Side Note: I am quite thankful for those manuals, because I would not be able to work on my car without the pages being broken down into a flowchart with a bunch of "yes"/"no" questions. I am not saying that I wouldn't eventually be able to figure it out; however, one of the advantages of having a structure chart and flow chart is to make problem solving more efficient. Since I have neither the time, nor the patience to create these invaluable tools for my car, myself, I rely on the manufacturer of the owner's manual for 2001 Honda Accord V6 Ed.

No comments:

Post a Comment