Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Functional Decomposition is the process of taking a complex process and breaking it down into its smaller, simpler parts.</p> <p>For instance, think about using an ATM. You could decompose the process into:</p> <ol> <li><p>Walk up to the ATM</p></li> <li><p>Insert your bank card</p></li> <li><p>Enter your pin</p></li> </ol> <p>well...you get the point.</p> <p>You can think of programming the same way. Think of the software running that ATM:</p> <ol> <li><p>Code for reading the card</p></li> <li><p>PIN verification</p></li> <li><p>Transfer Processing</p></li> </ol> <p>Each of which can be broken down further. Once you've reached the most decomposed pieces of a subsystem, you can think about how to start coding those pieces. You then compose those small parts into the greater whole. Check out this Wikipedia Article:</p> <p><a href="http://en.wikipedia.org/wiki/Decomposition_(computer_science)" rel="noreferrer">Decomposition (programming)</a></p> <p>The benefit of functional decomposition is that once you start coding, you are working on the simplest components you can possibly work with for your application. Therefore developing and testing those components becomes much easier (not to mention you are better able to architect your code and project to fit your needs).</p> <p>The obvious downside is the time investment. To perform functional decomposition on a complex system takes more than a trivial amount of time BEFORE coding begins.</p> <p>Personally, I think that amount of time is well worth it.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload