Each object should have its own bone. Each bone should be unconnected to the others and able to move freely. This allows you to animate each bone, with position and rotation, while still keeping the model as one. Each bone is really just a matrix to apply to the vertices under it's control. It's simple to imagine applying a translation and rotation to each group of vertices that make up each portion of the complete object above. Allowing them to separate and move independently of each other.
You should use the 3D modeling/animation program you're most familiar with. If your program allows for simulations with physics, you can utilize it to physically simulate the collapse. Alternatively, you can do the animation by hand, using key frames. Animating by hand will be challenging, but should be simple enough with the right approach. I would start by moving the top and having the near bottom one collapse, moving the other parts to follow. But, really, that's an artistic question and there are many different ways to do it.