Curved roof (attic)?
As has been commented, a subdiv. approach might be:




To inset the top face of a cuboid evenly: I inset it with 'Even' checked..
Select the outside vertices and  GG slide the loop inwards
AltM merge the top vertices by distance.





CtrlR cut loop round the waist
Assign a Bevel modifier, by angle.
These are my Bevel settings, quite a common way to put in holding loops to contain  Catmull-Clark subdivision, in the right circumstances. 





(You can, instead, use Bevel Weights, or introduce holding loops by hand)
Assign a Subdivision surface modifier, probably 1 level of Catmull-Clark will do




You can adjust the curvature by adjusting the one loop around the waist, (at least, to block the model out).