A Priori Reasoning for Component-based Software Development ?