Cook pasta in plenty of boiling salted water until al dente, then drain, rinse and drain again.
Blanch tomatoes in boiling water for a few seconds. Drain, peel, quarter, core and cut tomatoes into small cubes.
Peel and chop onion and garlic. In a pot, sauté onion and garlic in hot oil. Add tomatoes, season with salt and pepper and simmer about 5 minutes.
Cut spaghetti into smaller pieces and mix with 1 tablespoon butter and Parmesan.
Beat the eggs and pour over pasta. Add tomatoes and mix well. Finely dice mozzarella and salami.
In a large nonstick skillet, heat 1 tablespoon butter. Add half of the egg mixture, top with mozzarella and salami cubes and cover with remaining egg mixture. Cook until eggs begin to thicken, about 10 minutes.
Gently slide frittata onto a large lid. Add remaining butter to pan. Flip frittata into pan and cook 5 minutes more. Serve sprinkled with parsley.