In a mixing bowl whisk together the eggs, salt and pepper, and add 1/4 cup cheese. Set aside.
In a large non-stick, broiler-proof skillet, melt the butter over medium heat. Add the shallots and mushrooms and saute for 4 minutes. Add the asparagus to the pan and continue to cook until the asparagus is crisp-tender, about 4 minutes. Stir in the egg mixture. Cover, reduce the heat to low and cook until the eggs are almost set, about 10 minutes.
Preheat the broiler.
Sprinkle the frittata with the remaining Parmesan. Place the frittata under the broiler and cook until the top is set and starts to brown, about 3 minutes. Place a large serving plate over the pan, and carefully invert to turn out the frittata to serve.