In all my experience decomposing functional requirements from the top down through a hierarchy and successfully using that hierarchy as the basis for building and implementing some pretty cool systems from the bottom up, it shames me to admit that I do not have a guaranteed method for ensuring that all the levels in the functional decomposition hierarchy are at that perfect place to decompose no further.

The question is: What are the tangible flags or indicators or signals to use that confirm that functional decomposition to a given leaf is both complete and correct so that algorithm design can commence.