i tried it, and for me a nurbs-revolve worked best ..
1 revolved curve for the spheres on the top
1 nurbs circle, transformed to a square
loft between revolved surface and square-circle as translator between non edged-surface to edged surface
secound loft between square circle and duplicated square circle for the rest of the roof.
attached a file with the result...