MAKE ALFREDO SAUCE: Preheat an oven to 375F. Place a large saucepan on medium heat and add the butter. Once the butter has melted, stir in the garlic and onion, cook for 5 minutes to soften. Then add the flour and cook out for 2 minutes, stirring continuously until a thick paste has formed. Gradually add the milk into the saucepan, stirring to prevent lumps and form a thick silky sauce. Pour the heavy cream, mozzarella and parsley into the saucepan, season generously with black pepper. Remove the alfredo sauce from the heat and allow the cheese to melt.
COOK PASTA: Fill a saucepan halfway with water and place on a high heat, once boiling add the penne and salt. Cook according to packet instructions approximately 8 minutes then strain the penne through a colander.
COMBINE SHRIMP ALFREDO: Into the saucepan of alfredo sauce add the cooked pasta and cooked shrimp, stir to combine well.
BAKE: Transfer the shrimp alfredo to an oven-proof dish and spread evenly. Top the dish with grated parmesan then place in the preheated oven for 20 minutes.
SERVE: Remove the shrimp alfredo bake from the oven once it is golden brown and bubbling with cheese. Allow to cool for 10 minutes before serving.