I've been looking across the web for a simple explanation about the differences between the two. I understand composition is "bottom-up" design while decomposition is "top-down" design. However, aside from that - are there any further differences? If a program implements the "composability" principle, does it necessarily also implement the "decomposability" principle, and vice-versa?
It's obvious how these two can lead to different designs, but all in all, it seems they represent exactly the same thing from different point of views.
Clarifications will be highly appreciated. Cheers!
Some reference links: