Building Reliable Component-Based Software Systems